Heim > Backend-Entwicklung > PHP-Tutorial > PHP Master | E -Mail mit Swift Mailer senden

PHP Master | E -Mail mit Swift Mailer senden

尊渡假赌尊渡假赌尊渡假赌
Freigeben: 2025-02-25 14:16:11
Original
390 Leute haben es durchsucht

PHP Master | Sending Email with Swift Mailer

PHP Master | E -Mail mit Swift Mailer senden

Key Takeaways

  • Swift Mailer ist eine leistungsstarke, komponentenbasierte Bibliothek, mit der Programmierer E-Mails mit einem objektorientierten Ansatz mit minimaler Anforderungen von PHP 5.2 oder höher mit der SPL-Erweiterung und einer minimalen Speichergrenze von 8 MB.
  • Swift Mailer kann über Birne oder durch Hochladen der Dateien mit einem FTP installiert werden. Es besteht aus mehr als 150 Klassen und Schnittstellen, einschließlich Mailer, Transportern, Mime -Entitäten, Encodern und Plugins.
  • Swift Mailer bietet Funktionen zum Erstellen einer E-Mail mit mehreren Empfängern, einem Thema und einem einfachen Textkörper. Es ermöglicht auch Anhänge, benutzerdefinierte SMTP -Konfiguration und Verfolgung von Empfängern, die die E -Mail nicht erhalten.
  • Swift Mailer verfügt außerdem über ein Dekorateur -Plugin, mit dem Sie dieselbe E -Mail an mehrere Empfänger mit kleinen Unterschieden senden können, z. B. den Empfängernamen im E -Mail -Körper. Dies ist von Vorteil für Aufgaben wie das Senden von Newsletter an Abonnenten.
  • Das programmgestellte Senden von E -Mails ist eine häufige Aufgabe, mit der Programmierer häufig zu tun haben müssen. Obwohl Sie die nativen Funktionen von PHP verwenden können, können diese zu niedrig sein, insbesondere wenn Sie eine oder mehrere Dateien an Ihre Nachricht anhängen möchten. Wenn Sie die nativen Funktionen nicht verwenden möchten oder wenn Sie E-Mails mit einem objektorientierten Ansatz senden möchten, ist dies der Artikel für Sie. Ich werde Ihnen Swift Mailer vorstellen, einer leistungsstarken Komponentenbibliothek, in der Sie E-Mails problemlos senden können. Swift Mailer wurde im Jahr 2005 gestartet und ist eine Bibliothek, in der mehrere Klassen enthält, mit denen Sie E -Mails in Ihren PHP -Skripten oder Webanwendungen senden können. Swift Mailer hat einige Anforderungen, sie sind jedoch minimal. Die Bibliothek benötigt Php 5.2 oder höher mit der SPL -Erweiterung und einer minimalen Speichergrenze von 8 MB. Unter Berufung auf die offizielle Dokumentation ist die Installation von Swift Mailer trivial. Normalerweise geht es nur beim Hochladen der extrahierten Quelldateien auf Ihren Webserver. Die einfachste Möglichkeit, die Bibliothek zu installieren, besteht darin, die Dateien mit einem FTP hochzuladen. Die Installation aus dem Birnenkanal ist nur eine Frage der Befehle vom Typ zwei:
Die zweite Methode ist wahrscheinlich die einfachste, wenn Sie auf einem gemeinsam genutzten Hosting sind und Sie keinen Zugriff auf die Befehlsschale haben. Laden Sie einfach die Bibliothek von der offiziellen Website herunter und laden Sie den Lib -Ordner hoch.
pear channel-discover pear.swiftmailer.org
pear install swift/swift
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Die Swift Mailer -Familie von Klassen

Swift Mailer besteht aus mehr als 150 Klassen und Schnittstellen, die in mehreren Komponenten zusammengefasst sind. Jeder von ihnen hat einen bestimmten Zweck.

    Mailer: Der Mailer, der von der Swift_Mailer -Klasse realisiert wird, ist die zentrale Klasse in der Bibliothek und die, die die E -Mail tatsächlich über die Methode send () sendet. Sein Konstruktor akzeptiert eine Instanz einer Klasse, die die Schnittstelle swift_transport implementiert, mit der Sie E -Mails mit einem benutzerdefinierten SMTP senden können.
  • Transporter: Sie implementieren die Schnittstelle SWIFT_TRALSPORT und deren Umfang besteht darin, mit einem Dienst zu kommunizieren, um eine E -Mail -Nachricht zu übermitteln. Die Hauptklassen sind SWIFT_SMTPTRANSPORT, das das SMTP -Protokoll, Swift_Sendmailtransport verwendet, das mit einer ausführbaren Sendmail -Sendmail -Datei kommuniziert, und Swift_mailTransport, die auf der Funktion des PHP Native Mail () () beruht.
  • MIME -Entitäten: Dies ist eine Schlüsselkomponente in der Bibliothek. Die Klasse, mit der Sie den Empfänger, das Subjekt, den Körper usw. angeben, wird aus mehreren Einheiten, die zusammengefasst sind, zusammengestellt. Zwei Beispiele für Entitäten sind die Anhänge und der E -Mail -Header.
  • Encoder: Diese Komponente wird nicht etwas, mit dem Sie sich befassen werden, da sie hinter den Kulissen wirkt. Es gibt zwei Arten von Encodern: Base64 und zitierbar. Ihr Ziel ist es, den Inhalt in ein Format zu verwandeln, das den RFC -Spezifikationen entspricht.
  • Plugins: Diese werden verwendet, um die grundlegenden Funktionen von Swift Mailer zu erweitern. Einige der Plugins sind Antiflood - und ändern Sie nur einige Unterschiede im E -Mail -Text.

Ein grundlegendes Beispiel

Mit mir so weit? Gut. Nachdem Sie eine Vorstellung davon haben, wie die Komponenten in der Bibliothek organisiert sind, lassen Sie uns die Hände schmutzig machen und sehen, wie Sie die Leistung und Flexibilität von Swift Mailer nutzen können. In diesem ersten und sehr einfachen Beispiel zeige ich Ihnen die Erstellung einer E-Mail mit zwei Empfängern, einem Motiv und einem einfachen Textkörper. Nach der Erstellung wird es an die Empfänger gesendet. Der folgende Code verwendet drei der im vorherigen Abschnitt genannten Klassen: Swift_mailtransport, Swift_mailer und Swift_Message. Beachten Sie außerdem die erste Zeile des Codes, die für den Autoloader von Swift Mailer, die für die Verwendung der Bibliothek benötigt wird, benötigt.
pear channel-discover pear.swiftmailer.org
pear install swift/swift
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Wie Sie sehen können, wird Swift_mailTransport verwendet, um eine Instanz einer Transportschicht zu erstellen, die die native PHP Mail () -Funktion verwendet. Dann habe ich eine Swift_Message erstellt Instanz, die Sie als E -Mail -Objekt betrachten können. In den folgenden Zeilen setze ich die Empfänger mithilfe der Methode SETTO (), das E -Mail -Betreff mit setSubject (), der E -Mail -Organisation mit SetBody () und dem Absender mit der Methode setFrom () fest. Mit der definierten Ebene und der erstellten E -Mail ist es an der Zeit, die E -Mail tatsächlich zu senden, die mit der Send () -Methode der SWIFT_MAILER -Klasse durchgeführt wird.

Ein Beispiel mit Anhängen

Es besteht kein Zweifel, dass Anhänge ein Grundnahrungsmittel für die heutigen E -Mail -Systeme sind. Niemand kann ohne sie leben. In diesem etwas komplizierteren Beispiel wird angezeigt, wie Sie eine E -Mail senden, die nicht nur einen Anhang, sondern auch andere Funktionen hat.
  • Zwei zusätzliche Empfänger, eine in CC und die zweite in BCC mit setcc () und setbcc ().
  • Ein Anhang, der mit der Methode cattest () aus der Festplatte abgerufen wurde.
  • Eine benutzerdefinierte SMTP -Konfiguration mit der Klasse SWIFT_SMTPTRANSPORT.
  • Wissen, welche Empfänger die E -Mail nicht mit dem zweiten Parameter der Send () -Methode erhalten haben.
pear channel-discover pear.swiftmailer.org
pear install swift/swift
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Ich habe eine andere Transportschicht verwendet, eine SMTP , die mit der Klasse SWIFT_SMTPTRANSPORT eingestellt wird. Es akzeptiert zwei Parameter: den SMTP -Server und den Verbindungsport. Sie verwenden die Instanz, um einen geeigneten Benutzernamen und einen geeigneten Kennwort festzulegen, um mit den Methoden SetUserName () und setPassword () auf den Server zugreifen zu können. Genau wie beim ersten Beispiel habe ich ein Swift_Message -Objekt erstellt und die Empfänger, das Thema usw. gesetzt. Diesmal nutzte ich jedoch auch die SetCC () und den SetBCC () Methoden, mit denen Sie, wie Sie vielleicht vermuten, Carbon Copy und Blind Carbon Copy -Empfänger einstellen können. Die Schlüsselmethode dieses Beispiels ist Cattel (), der eine von der Festplatte entnommene Datei unter Verwendung der statischen Methode von Path () anschließt, die den Pfad zur Datei, die Sie als Parameter anhängen möchten, übertragen werden. Beachten Sie, dass ich diesmal auch die Anzahl der fehlgeschlagenen Empfänger ausdrucken habe, die mit dem zweiten Parameter der Send () -Methode abgerufen wurden.

Verwenden einer Vorlage

Das dritte und letzte Beispiel zeigt Ihnen, wie Sie das Dekorateur -Plugin verwenden, ideal für Dinge wie das Senden von Newslettern an Ihre Abonnenten. Sie können dieselbe E -Mail an mehrere Empfänger mit kleinen Unterschieden wie dem Empfängernamen im E -Mail -Körper senden. Das Plugin schaut in die Vorlage (den Körper) und ersetzt die Platzhalter durch die festgelegten Werte. Um das Plugin zu verwenden, müssen Sie es zunächst mit der Registerplugin () -Methode registrieren und dann eine Reihe von Ersatzwerten erstellen und verwenden. Im folgenden Code werde ich zwei Platzhalter einfügen, Benutzername und Transaktionen , die programmgesteuert durch Werte ersetzt werden, die sich auf die E -Mail des Benutzers beziehen.
<span><span><?php
</span></span><span><span>require_once 'lib/swift_required.php';
</span></span><span>
</span><span><span>// Create the mail transport configuration
</span></span><span><span>$transport = Swift_MailTransport<span>::</span>newInstance();
</span></span><span>
</span><span><span>// Create the message
</span></span><span><span>$message = Swift_Message<span>::</span>newInstance();
</span></span><span><span>$message->setTo(array(
</span></span><span>  <span>"hello@gmail.com" => "Aurelio De Rosa",
</span></span><span>  <span>"test@fake.com" => "Audero"
</span></span><span><span>));
</span></span><span><span>$message->setSubject("This email is sent using Swift Mailer");
</span></span><span><span>$message->setBody("You're our best client ever.");
</span></span><span><span>$message->setFrom("account@bank.com", "Your bank");
</span></span><span>
</span><span><span>// Send the email
</span></span><span><span>$mailer = Swift_Mailer<span>::</span>newInstance($transport);
</span></span><span><span>$mailer->send($message);</span></span>
Nach dem Login kopieren
Der Dekorateur -Plugin -Konstruktor akzeptiert einen Parameter: eine Reihe von Werten, um die Platzhalter zu ersetzen. Jeder Wert dieses Arrays verwendet die E-Mail des Benutzers für seinen Schlüssel und ein Unterarray, das Platzhalterpaare enthält. Dies ist genau das Ziel des $ Ersatz -Arrays. Im obigen Beispiel habe ich als Platzhalter eine Zeichenfolge in zwei Klammern verwendet (d. H. {Fullname}) Aber Sie können alles verwenden, was Sie wollen. Dieses Mal habe ich nicht alle Empfänger in derselben Aussage wie zuvor festgelegt und habe eine für die Schleife verwendet. Dies geschieht, weil das Plugin den Sendeprozess abfängt, die Empfänger -E -Mail liest und die Platzhalter anhand der Werte des Ersatzarrays ersetzt.

Schlussfolgerung

In diesem Artikel habe ich gezeigt, wie Sie problemlos E -Mails mit Swift Mailer senden können. Dies ist eine sehr leistungsstarke Bibliothek, die Sie, wie Sie gesehen haben, mit einem OOP -Ansatz viele Dinge ermöglichen. Natürlich hat Swift Mailer viele andere Methoden und Klassen, die ich in diesem Artikel nicht behandelt habe. Sie können sie in der offiziellen Dokumentation untersuchen, dies sollte jedoch ausreichen, damit Sie mit dem Senden von E -Mails ohne Probleme damit beginnen können. Bild über Fotolien

häufig gestellte Fragen zu Swift Mailer

Wie kann ich Swift Mailer mit Composer installieren? Um Swift Mailer zu installieren, müssen der Komponist auf Ihrem System installiert werden. Sobald Sie den Komponisten installiert haben, können Sie Swift Mailer installieren, indem Sie den folgenden Befehl in Ihrem Projektverzeichnis ausführen: Composer benötigt "Swiftmailer/Swiftmailer:^6.0". Dieser Befehl fordert den Komponist auf, das Swift Mailer -Paket und seine Abhängigkeiten in Ihr Projekt herunterzuladen.

Wie kann ich eine E -Mail mit Swift Mailer senden? Konfigurieren des Mailer und Senden der Nachricht. Hier ist ein grundlegendes Beispiel dafür, wie Sie eine E -Mail mit Swift Mailer senden:

require_once

-> setSubject ('Hallo')

-> setfrom (['John@doe.com' => 'John Doe'])
-> setto (['reciver@domain.org', 'other@domain.org' => 'Ein Name'])
-> setBody ('Hier ist die Nachricht selbst'); $ transport = (neu Swift_SmtpTransport ('SMTP.Example.org', 25))
-> setUnername ('dein Benutzername')
-> setPassword ('dein Passwort');

$ mailer = new Swift_mailer ($ transport);

$ result = $ mailer-> send ($ message);

Wie kann ich Anhänge zu einer E -Mail mit Swift Mailer hinzufügen? Sie können Dateien von einem Pfad, einer Zeichenfolge oder einer vorhandenen Swift -Anhangsinstanz anhängen. Hier ist ein Beispiel dafür, wie Sie eine Datei aus einem Pfad anhängen:

$ message = (new Swift_Message ())
-> setSubject ('Hallo')
-> setfrom (['John @doe.com '=>' John doe '])
-> setto ([' reciver@domain.org '])
-> setBody (' Hier ist die Nachricht selbst ')

-> attach (Swift_attachment :: from path (' path/to/image.jpg '));

Wie kann ich HTML -E -Mails mit Swift Mailer senden? Hier ist ein Beispiel:

$ message = (new Swift_Message ())
-> setSubject ('Hallo')
-> setfrom (['John@doe.com' => 'John Doe '])
-> setto ([' reciver@domain.org '])
-> setbody ('

Hier ist die html Nachricht selbst

',' text/html ');

Wie kann ich Fehler im Swift -Mailer verarbeiten? Sie können diese Ausnahmen fangen, um Fehler zu behandeln. Hier ist ein Beispiel:

try {

$ result = $ mailer-> send ($ message); Senden der E -Mail: '. $ e-> getMessage ();

}

Wie kann ich Swift Mailer mit Google Mail verwenden? Einstellungen. Hier ist ein Beispiel:

$ transport = (neu Swift_Smtptransport ('SMTP.gmail.com', 465, 'SSL')
-> setusername ('Ihr Google Mail -Benutzername')
- > setPassword ('Ihr Google Mail -Passwort');

Wie kann ich mehrere E -Mails mit Swift Mailer senden?

Sie können mehrere E -Mails mit Swift Mailer senden, indem Sie mehrere Nachrichteninstanzen erstellen und mit derselben Mailer -Instanz senden. Hier ist ein Beispiel:

$ message1 = (new Swift_Message ())
-> setSubject ('Hallo')
-> setfrom (['John@doe.com' => 'John Doe '])

-> setto ([' receiver1@domain.org '])

-> setBody (' Hier ist die Nachricht selbst ');

$ message2 = (new Swift_Message ())
-> setSubject (' Hallo ')
-> setfrom ([' John@doe.com '=>' John Doe '])
-> setto ([' receiver2@domain.org '])
-> setbody (' Hier ist die Nachricht selbst ');

$ result1 = $ mailer-> send ($ message1);
$ result2 = $ mailer-> send ($ message2);

Wie kann ich Swift verwenden Mailer mit Symfony?

Swift Mailer ist in Symfony integriert und kann als Dienst verwendet werden. Sie können E -Mails mit Swift Mailer in Symfony senden, indem Sie den Mailer -Dienst erhalten und diese zum Senden einer Nachricht verwenden. Hier ist ein Beispiel:

$ message = (new Swift_Message ())
-> setSubject ('Hallo')
-> setfrom (['John@doe.com' => 'John Doe '])

-> setto ([' reciver@domain.org '])

-> setBody (' Hier ist die Nachricht selbst ');

$ this-> get (' mailer ')-> send ($ meldung);

Wie kann ich die Priorität einer E-Mail mit Swift Mailer festlegen?

Sie können die Priorität einer E -Mail mit Swift Mailer festlegen, indem Sie die SetPriority -Methode auf der Nachrichteninstanz aufrufen. Die Priorität ist eine Ganzzahl zwischen 1 (höchster) und 5 (niedrigst). Hier ist ein Beispiel:

$ message = (new Swift_Message ())
-> setSubject ('Hallo')
-> setfrom (['John@doe.com' => 'John Doe '])

-> setto ([' reciver@domain.org '])

-> setBody (' Hier ist die Nachricht selbst ')

-> setPriority (1);

Wie kann ich asynchron mit Swift Mailer E -Mails senden? Sie können dies jedoch mit einer Nachrichtenwarteschlange erreichen. Sie können Nachrichten aufnehmen und sie dann in einem separaten Vorgang senden. Auf diese Weise kann Ihre Bewerbung weiterhin andere Aufgaben bearbeiten, ohne darauf zu warten, dass die E -Mails gesendet werden.

Das obige ist der detaillierte Inhalt vonPHP Master | E -Mail mit Swift Mailer senden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage