Senden Sie E-Mails in PHP mit Swift Mailer

In diesem Artikel werden wir die Swift Mailer-Bibliothek untersuchen, in der Sie E-Mails aus PHP-Anwendungen senden können. Beginnend mit der Installation und Konfiguration gehen wir ein reales Beispiel vor, das verschiedene Aspekte des Versendens von E-Mails mit der Swift Mailer-Bibliothek veranschaulicht.

Was ist Swift Mailer??

Wenn Sie E-Mails in PHP-Anwendungen senden, haben Sie eine Vielzahl von Optionen zur Auswahl. Vielleicht erstellen Sie sogar Ihren eigenen Wrapper, um E-Mail-Funktionen schnell einzurichten. Sie haben jedoch immer Glück, wenn Sie eine gut gewartete und reichhaltige Bibliothek verwenden.

Swift Mailer ist eine beliebte Bibliothek zum Versenden von E-Mails aus PHP-Anwendungen und wird von der PHP-Community allgemein akzeptiert. Es handelt sich dabei um eine Bibliothek mit vielen Funktionen, die nahezu alle Aspekte des Versendens von E-Mails abdeckt, von der Einrichtung verschiedener Transporte bis zum Anpassen der gesendeten Nachricht.

Tatsächlich ist das Senden von E-Mails mit der Swift Mailer-Bibliothek ein ziemlich einfacher Prozess.

  1. Initialisieren Sie das Transportobjekt (SMTP / Sendmail).
  2. Initialisieren Sie das Mailer-Objekt mit diesem Transport.
  3. Initialisieren Sie das Message-Objekt.
  4. Formatieren und senden Sie die Nachricht.

Im nächsten Abschnitt werden wir anhand eines Beispiels aus der Praxis die oben genannten Schritte demonstrieren.

Installation und Konfiguration

In diesem Abschnitt werden wir die Installation und Konfiguration der Swift Mailer-Bibliothek durchgehen. Die Installation ist ziemlich unkompliziert, da sie bereits als Composer-Paket verfügbar ist. Bevor Sie fortfahren, stellen Sie sicher, dass Sie Composer installiert haben, da wir ihn zur Installation der Swift Mailer-Bibliothek benötigen.

Wenn Sie Composer installiert haben, greifen Sie mit dem folgenden Befehl zur Bibliothek des Swift Mailer.

$ composer benötigt "swiftmailer / swiftmailer: ^ 6.0"

Damit sollte die Swift Mailer-Bibliothek zusammen mit den notwendigen Abhängigkeiten im installiert werden Verkäufer Verzeichnis. Und der Inhalt des neu erstellten composer.json sollte so aussehen:

"required": "swiftmailer / swiftmailer": "^ 6.0"

Das ist also der Installationsteil, aber wie soll man es verwenden? In der Tat ist es nur eine Frage der Einbeziehung der autoload.php Datei, die von Composer in Ihrer Anwendung erstellt wurde, wie im folgenden Snippet gezeigt.

So senden Sie E-Mails

Im vorherigen Abschnitt haben wir untersucht, wie Sie die Swift Mailer-Bibliothek mit Composer installieren. In diesem Abschnitt beginnen wir mit der Implementierung eines realen Beispiels.

Mach weiter und erstelle das email.php Datei mit folgendem Inhalt.

setUsername ('xxxxxxxx') -> setPassword ('xxxxxxxx'); // Erstelle den Mailer mit deinem erstellten Transport $ mailer = new Swift_Mailer ($ transport); // Nachricht erstellen $ message = new Swift_Message (); // Setze einen "Betreff" $ message-> setSubject ('Demo-Nachricht mit der SwiftMailer-Bibliothek.'); // Setze die "Absenderadresse" $ message-> setFrom (['[email protected]' => 'sendername']); // Set "To address" [setTo-Methode für mehrere Empfänger verwenden, Argument sollte Array sein] $ message-> addTo ('[email protected]', 'Empfängername'); // "CC" -Adresse hinzufügen [setCc-Methode für mehrere Empfänger verwenden, Argument sollte Array sein] $ message-> addCc ('[email protected]', 'Empfängername'); // "BCC" -Adresse hinzufügen [setBcc-Methode für mehrere Empfänger verwenden, Argument sollte Array sein] $ message-> addBcc ('[email protected]', 'Empfängername'); // Füge einen "Anhang" hinzu (auch die dynamischen Daten können angehängt werden) $ attachment = Swift_Attachment :: fromPath ('example.xls'); $ attachment-> setFilename ('report.xls'); $ message-> attach ($ attachment); // Inline "Image" hinzufügen $ inline_attachment = Swift_Image :: fromPath ('nature.jpg'); $ cid = $ message-> embed ($ inline_attachment); // Setzen Sie den Klartext "body" $ message-> setBody ("Dies ist der Klartextkörper der Nachricht. \ NDanke, \ nAdmin"); // Setze einen "Body" $ message-> addPart ('Dies ist die HTML-Version der Nachricht.).
Beispiel für ein Inline-Bild:

Vielen Dank,
Admin ',' text / html '); // Nachricht senden $ result = $ mailer-> send ($ message); catch (Ausnahme $ e) echo $ e-> getMessage ();

Gehen wir durch, wie dieser Code funktioniert.

Initialisieren Sie Swift Mailer

Die Swift Mailer-Bibliothek unterstützt beim Senden einer E-Mail verschiedene Transporte wie SMTP und Sendmail. Das erste, was Sie tun müssen, ist die Initialisierung Transport Objekt.

Im obigen Beispiel habe ich den SMTP-Transport zum Senden von E-Mails verwendet.

$ transport = (neuer Swift_SmtpTransport ('smtp.hostname', 25)) -> setUsername ('xxxxxxxx') -> setPassword ('xxxxxxxx');

Wenn Sie das Sendmail-Protokoll verwenden möchten, müssen Sie das entsprechende natürlich initialisieren Swift_SendmailTransport Objekt.

// Erstellen Sie den SendMail-Transport $ transport = new Swift_SendmailTransport ('/ usr / sbin / sendmail -bs');

Nachdem der Transport erstellt wurde, müssen wir ein Mailer-Objekt initialisieren und den bereits erstellten Transport übergeben.

// Erstelle den Mailer mit deinem erstellten Transport $ mailer = new Swift_Mailer ($ transport);

Nachricht erstellen

Nach dem Erstellen der Transport- und Mailer-Objekte müssen Sie nur noch die Schnelle Nachricht Objekt und dekorieren Sie es mit den erforderlichen Attributen.

// Nachricht erstellen $ message = new Swift_Message ();

Jetzt benutzen wir die $ message Gegenstand, um den Inhalt unserer Nachricht vorzubereiten. Zunächst einmal die setSubject Mit dieser Methode können Sie den Betreff der E-Mail festlegen.

// Setze einen "Betreff" $ message-> setSubject ('Demo-Nachricht mit der SwiftMailer-Bibliothek.');

Das setFrom Mit dieser Methode wird die Absenderadresse der E-Mail festgelegt.

// Setze die "Absenderadresse" $ message-> setFrom (['[email protected]' => 'Absendername']);

Lassen Sie uns die "An" -Adresse der E-Mail festlegen. In der Tat gibt es einige Variationen, um die Empfänger der E-Mail festzulegen. Wenn Sie einen einzelnen Empfänger einstellen möchten, können Sie die verwenden hinzufügen Methode und die einstellen Diese Methode wird dagegen verwendet, um mehrere Empfänger festzulegen.

// Set "To address" [SetTo-Methode für mehrere Empfänger verwenden, Argument sollte Array sein] $ message-> addTo ('[email protected]', 'receiver name');

Das addCc und addBcc Methoden werden verwendet, um die CC- und BCC-Adressen der E-Mail festzulegen.

// "CC" -Adresse hinzufügen [setCc-Methode für mehrere Empfänger verwenden, Argument sollte Array sein] $ message-> addCc ('[email protected]', 'Empfängername'); // "BCC" -Adresse hinzufügen [setBcc-Methode für mehrere Empfänger verwenden, Argument sollte Array sein] $ message-> addBcc ('[email protected]', 'Empfängername');

Dateien anhängen

Als Nächstes wollen wir uns ansehen, wie Sie eine Datei an eine E-Mail anhängen können. 

Sie müssen zuerst das instanziieren Swift_Attachment Objekt mit einem gültigen Dateinamen. Nachdem Sie das Anhangsobjekt erstellt haben, können Sie es mit der anfügen Methode. Sie können auch die verwenden setFilename Methode, wenn Sie den Dateinamen ändern möchten, der in der Nachrichtenanlage angezeigt wird.

// Füge einen "Anhang" hinzu (auch die dynamischen Daten können angehängt werden) $ attachment = Swift_Attachment :: fromPath ('example.xls'); $ attachment-> setFilename ('report.xls'); $ message-> attach ($ attachment);

Neben regulären Dateianhängen möchten Sie manchmal Bilder in den Nachrichtentext einbetten. Sie können das tun, indem Sie die einbetten Methode, wie im folgenden Ausschnitt gezeigt. Das einbetten Die Methode gibt die eindeutige ID des eingebetteten Objekts zurück, die Sie später in der Nachricht verwenden können, während Sie über das Image auf das Bild verweisen src Eigentum.

// Inline "Image" hinzufügen $ inline_attachment = Swift_Image :: fromPath ('nature.jpg'); $ cid = $ message-> embed ($ inline_attachment);

Der Nachrichtentext

Als Nächstes legen wir den E-Mail-Text mithilfe von fest setBody Methode.

// Setzen Sie den Klartext "body" $ message-> setBody ("Dies ist der Klartextkörper der Nachricht. \ NDanke, \ nAdmin");

Wenn Sie die HTML-Version der Nachricht festlegen möchten, können Sie die verwenden addPart Methode, wie im folgenden Ausschnitt gezeigt. Wie Sie sehen, verwenden wir $ cid um auf das zuvor eingebettete Bild zu verweisen.

// Setze einen "Body" $ message-> addPart ('Dies ist die HTML-Version der Nachricht.).
Beispiel für ein Inline-Bild:

Vielen Dank,
Admin ',' text / html ');

Senden Sie die Nachricht!

Zum Schluss verwenden wir die senden Methode des Mailer-Objekts zum Senden der E-Mail.

// Nachricht senden $ result = $ mailer-> send ($ message);

Versuchen Sie, das Skript auszuführen, und Sie sollten eine E-Mail erhalten! Lassen Sie mich im Kommentarbereich wissen, wenn Sie Probleme haben.

Fazit

Heute haben wir uns eine der beliebtesten PHP-Bibliotheken zum Versenden von E-Mails angesehen: Swift Mailer. Mit dieser Bibliothek können Sie mühelos E-Mails aus Ihren PHP-Skripts versenden.

Fühlen Sie sich frei, Ihre Gedanken und Fragen mit dem untenstehenden Formular zu posten.