FuelPHP - E-Mail-Verwaltung

Die E-Mail-Funktionalität ist die am häufigsten nachgefragte Funktion in einem Webframework. FuelPHP bietet eine elegante E-Mail-Klasse, die als Paket gebündelt ist. Es wird verwendet, um einfache Nur-Text-E-Mails sowie erweiterte Rich-Text-E-Mails mit mehreren Anhängen zu senden. Es unterstützt die folgenden Funktionen: Nur-Text-Mails, HTML-Mails, Anhänge und Inline-Anhänge.

Aufbau

Um die E-Mail-Funktionalität in der Anwendung zu aktivieren, müssen wir nur das E-Mail-Paket laden, wie unten in der Hauptkonfigurationsdateiuel / app / config / config.php angegeben.

'always_load' => array ( 
   'packages' => array ( 
      'email', 
   ), 
),

Eine andere Möglichkeit besteht darin, das E-Mail-Paket, den Controller selbst, wie folgt zu laden.

\Package::load('email');

Die E-Mail-Einstellung kann in der Hauptkonfigurationsdatei vorgenommen werden. Einige der wichtigsten Optionen sind folgende:

  • driver - E-Mail-Treiber wie SMTP

  • is_html - Ob E-Mails als HTML-Inhalt gesendet werden sollen oder nicht

  • priority - Priorität der E-Mail

  • smtp.host - SMTP-Server-Host

  • smtp.port - SMTP-Server-Port

  • smtp.username - SMTP-Server-Benutzername

  • smtp.password - SMTP-Serverkennwort

  • smtp.timeout - SMTP-Zeitüberschreitung

  • smtp.starttls - Gibt an, ob der SMTP-Server den Befehl STARTTLS benötigt

E-Mail-API

Im Folgenden finden Sie die API, die von der E-Mail- und E-Mail-Treiberklasse bereitgestellt wird.

Schmiede

Zweck: Erstellen einer Instanz des E-Mail-Treibers. Es erstellt den Treiber basierend auf der Konfiguration oder Eingabe, die es empfängt. Der E-Mail-Treiber bietet Funktionen zum Erstellen und Senden von E-Mails. Einige der möglichen E-Mail-Treiber sindsmtp, sendmail, mailgun, und mandrill.

  • Parameter - Keine oder eine Reihe von Konfigurationsdetails

  • Returns - Gibt das Email_Driver-Objekt zurück

Zum Beispiel,

$email = \Email::forge();  
$email = \Email::forge (array( 
   'driver' => 'smtp', 
));

Körper

  • Purpose - Zum Einstellen des Nachrichtentexts

  • Parameter - $ body - Nachrichtentext

  • Returns - Gibt die aktuelle Instanz zurück

Zum Beispiel,

$email = \Email::forge(); 
$email->body('Body message');  

//or pass it a View 
$email->body(\View::forge('my/view', $data);

alt_body

  • Purpose - Zum Einstellen des alternativen Nachrichtentexts

  • Parameter - $ alt_body - alternativer Nachrichtentext

  • Returns - Gibt die aktuelle Instanz zurück

Zum Beispiel,

$email = \Email::forge(); 
$email->alt_body('Body message');  

//or pass it a View 
$email->alt_body(\View::forge('my/view', $data);

Priorität

  • Purpose - Um die Priorität der Mail festzulegen

  • Parameter - -

    • $priority- Wert der Priorität. Die Optionen sind -

a. \Email::P_LOWEST 
* \Email::P_LOW 
* \Email::P_NORMAL 
* \Email::P_HIGH 
* \Email::P_HIGHEST
  • Returns - Gibt die aktuelle Instanz zurück

Zum Beispiel,

$email = \Email::forge(); 
$email->priority(\Email::P_HIGHEST);

html_body

  • Purpose - Um den Nachrichtentext im HTML-Format festzulegen

  • Parameter - -

    • $html - Nachrichtentext in HTML;

    • generate_alt - ob eine alternative Nachricht generiert werden soll;

    • auto_attach - ob das Bild eingebettet werden soll oder nicht

  • Returns - Gibt die aktuelle Instanz zurück

Zum Beispiel,

$email = \Email::forge();  

// Do generate the alt body, but don't auto attach images. 
$email->html_body(\View::forge('welcome/email', $data), true, false);

von

  • Purpose - Zum Einstellen der Absenderadresse

  • Parameters - -

    • $from - von der E-Mail-Adresse;

    • $name - Name des Absenders

  • Returns - Gibt die aktuelle Instanz zurück

Zum Beispiel,

$email = \Email::forge(); 
$email->from('[email protected]', 'My Name');

Gegenstand

  • Purpose - Zum Einstellen des Betreffs der Nachricht

  • Parameter - $ subject - Betreff der E-Mail-Nachricht

  • Returns - Gibt die aktuelle Instanz zurück

Zum Beispiel,

$email = \Email::forge(); 
$email->subject('Suject of the mail message');

zu

  • Purpose - Zum Einstellen der E-Mail-Adresse des Empfängers

  • Parameters - -

    • $email - E-Mail-Adresse oder Array von E-Mail-Adresse;

    • $name - Name des Empfängers

  • Returns - Gibt die aktuelle Instanz zurück

Zum Beispiel,

$email = \Email::forge();  
$email->to('[email protected]', 'My Dear Name'); 
$email->to (array( 
   '[email protected]', 
   '[email protected]' => 'My Dear friend', 
));

Header

  • Purpose - Zum Festlegen eines benutzerdefinierten Headers für die E-Mail-Nachricht

  • Parameters - -

    • $header - Headertyp oder Array des Headers;

    • $value - Wert des Headers

  • Returns - Gibt die aktuelle Instanz zurück

Zum Beispiel,

$email = \Email::forge(); 
$email->header('X-SMTPAP', 'XXXXXXXX'); 
$email>reply_to (array( 
   'X-SMTPAP'  => 'XXXXXX', 
   'X-SMTPAP2' > 'XXXXXA',
));

anfügen

  • Purpose - Um eine Datei an die E-Mail-Nachricht anzuhängen

  • Parameters- -

    • $file - Dateipfad;

    • $inline - ob die Datei inline angehängt werden soll oder nicht;

    • $cid - Inhaltskennung;

    • $mime - MIME-Typ der Anhangsdatei;

    • $name - Überschreiben des Namens der Anhangsdatei

  • Returns - Gibt die aktuelle Instanz zurück

Zum Beispiel,

$email = \Email::forge();
$email>attach(DOCROOT.'attachments/sample_attachment.pdf');

senden

  • Purpose - Um die Mail zu senden.

  • Parameter - -

    • $validate - ob die E-Mail-Adressen überprüft werden sollen

  • Returns - wahr oder falsch

Zum Beispiel,

$email = \Email::forge(); 
try{ 
   $email->send(); 

} catch(\EmailSendingFailedException $e) { 
   // The driver could not send the mail. 

} catch(\EmailValidationFailedException $e) { 
   // One or more email addresses failed validation. 
}

Arbeits-E-Mail-Beispiel

Verwenden wir die im vorherigen Kapitel erlernte API und erstellen Sie einen einfachen Code zum Senden einer Nachricht. Das Folgende ist der einfachste Code zum Senden einer Nachricht.

$email = Email::forge(); 
$email->from('[email protected]', 'person1'); 
$email->to('[email protected]', 'person2'); 
$email->subject('Add something'); 
$email->body('contents of mail'); $email->send();