Senden Sie E-Mails mit dem Gmail-SMTP-Server und der Swift Mailer-Bibliothek
Möchten Sie Ihre E-Mails über den Gmail-SMTP-Server senden? Wenn Sie den SMTP-Server für Ihre E-Mails verwenden, besteht eine hohe Wahrscheinlichkeit, dass Ihre E-Mails in den Posteingang des Benutzers und nicht in den Spam gelangen. Der SMTP-Server verhindert, dass Ihre E-Mails als Spam markiert werden. In diesem Artikel untersuchen wir, wie Sie E-Mails mit dem Gmail-SMTP-Server und der Swift Mailer-Bibliothek senden.
Als Websitebesitzer möchten Sie immer, dass Ihre E-Mails direkt in den Posteingang des Benutzers gelangen und nicht im Spam oder Junk. Es erhöht die Wahrscheinlichkeit, dass der Benutzer Ihre E-Mail liest und die gewünschte Aktion ausführt.
Warum müssen Sie einen SMTP-Server verwenden?
Für eine Website ist es normal, über ein Formular zu verfügen, das eine E-Mail an Benutzer oder Administratoren sendet. Dies kann Ihr Newsletter, Ihr Kontaktformular oder Ihr Registrierungsprozess sein, bei dem Sie eine E-Mail als Bestätigung senden müssen.
PHP bietet eine mail()Funktion zum Versenden von E-Mails. Wenn Ihr Server die E-Mail-Einstellungen jedoch nicht richtig konfiguriert, funktioniert diese Methode nicht. Eine andere Möglichkeit besteht darin, dass Sie beim Senden von E-Mails mit der mail()Methode Spam landen.
Um diese beiden Situationen zu überwinden, sollten Sie den SMTP-Server zum Senden Ihrer E-Mails verwenden.
Mit der Swift Mailer- Bibliothek kann der Benutzer jeden SMTP-Server wie Gmail, Sendgrid, Mandrill oder Ihren eigenen, vom Hosting bereitgestellten SMTP-Server zum Senden der E-Mails verwenden. In diesem Tutorial wähle ich einen Gmail-SMTP-Server aus.
Lassen Sie uns jedoch einen Blick darauf werfen, wie Sie die Swift Mailer-Bibliothek zum Senden von E-Mails verwenden.
Swift Mailer-Installation
Um die Swift Mailer-Bibliothek verwenden zu können, sollten Sie PHP-Version 7.2 oder höher auf Ihrem Server haben. Wenn Sie die ältere Version verwenden, aktualisieren Sie diese auf die neueste PHP-Version. Die meisten Hosting-Anbieter wie Bluehost aktualisieren die PHP-Version auf Anfrage. Sie müssen keine Zeit investieren, um die Version zu aktualisieren.
In Zukunft empfehle ich, Composer zu verwenden, um die Swift Mailer-Bibliothek zu installieren. Öffnen Sie das Terminal in Ihrem Projekt-Root-Verzeichnis und führen Sie den Befehl aus:
composer require swiftmailer/swiftmailerDa wir Gmail SMTP verwenden werden, müssen Sie einige Einstellungen in Ihrem Google-Konto ändern. Melden Sie sich bei Ihrem Google-Konto an und klicken Sie auf Konto. Sobald Sie sich auf der Google-Kontoseite befinden, klicken Sie auf Sicherheit. Scrollen Sie nach unten und Sie finden die Einstellungen für "Weniger sicherer App-Zugriff". Stellen Sie es auf EIN.
Senden Sie E-Mails mit dem Gmail-SMTP-Server und der Swift Mailer-Bibliothek
Zu diesem Zeitpunkt sind Sie mit der Swift Mailer-Bibliothek fertig und haben auch die Gmail-Kontoeinstellungen geändert. Jetzt können Sie gut vorankommen.
Angenommen, Sie haben eine Datei, sendmail.phpin die Sie einen Code schreiben müssen, der E-Mails sendet. Schreiben Sie den folgenden Code in Ihre PHP-Datei.
sendmail.php
<?php
require_once 'vendor/autoload.php';
try {
// Create the Transport
$transport = (new Swift_SmtpTransport('smtp.googlemail.com', 465, 'ssl'))
->setUsername('YOUR_GMAIL_USERNAME')
->setPassword('YOUR_GMAIL_PASSWORD')
;
// Create the Mailer using your created Transport
$mailer = new Swift_Mailer($transport);
// Create a message
$body = 'Hello, <p>Email sent through <span style="color:red;">Swift Mailer</span>.</p>';
$message = (new Swift_Message('Email Through Swift Mailer'))
->setFrom(['FROM_EMAIL_ADDRESS' => 'FROM_NAME'])
->setTo(['RECEPIENT_1_EMAIL_ADDRESS'])
->setCc(['RECEPIENT_2_EMAIL_ADDRESS'])
->setBcc(['RECEPIENT_3_EMAIL_ADDRESS'])
->setBody($body)
->setContentType('text/html')
;
// Send the message
$mailer->send($message);
echo 'Email has been sent.';
} catch(Exception $e) {
echo $e->getMessage();
}Im obigen Code habe ich die folgenden Werte für die Gmail-SMTP-Servereinstellungen übergeben.
- Google SMTP-Serveradresse: smtp.googlemail.com
- Gmail-SMTP-Port: 465
- Verschlüsselung: ssl
Abgesehen von diesen Werten müssen Sie andere Platzhalter wie YOUR_GMAIL_USERNAME, YOUR_GMAIL_PASSWORD usw. ändern.
Nachdem Sie alle Werte ersetzt haben, führen Sie diese Datei in einem Browser aus. Sie sollten die E-Mail im Posteingang erhalten, nicht im Spam.
Senden Sie einzelne oder mehrere Anhänge in einer E-Mail
Manchmal müssen Sie möglicherweise Anhänge in einer E-Mail senden. Mit Swift Mailer können Sie einzelne oder mehrere Anhänge wie folgt versenden:
$message->attach(Swift_Attachment::fromPath(__DIR__. '/sample.png')); //absolute path for your attachment
$message->attach(Swift_Attachment::fromPath(__DIR__. '/sample-ebook.pdf'));Alles, was Sie tun müssen, ist attachmethod zu verwenden und den absoluten Pfad der zu sendenden Datei als Anhang zu übergeben. Hier gehe ich davon aus, dass Sie ’sample.png‘ und ’sample-ebook.pdf‘ als Anhänge senden müssen.
Unser endgültiger Code ist also wie folgt.
sendmail.php
<?php
require_once 'vendor/autoload.php';
try {
// Create the Transport
$transport = (new Swift_SmtpTransport('smtp.googlemail.com', 465, 'ssl'))
->setUsername('YOUR_GMAIL_USERNAME')
->setPassword('YOUR_GMAIL_PASSWORD')
;
// Create the Mailer using your created Transport
$mailer = new Swift_Mailer($transport);
// Create a message
$body = 'Hello, <p>Email sent through <span style="color:red;">Swift Mailer</span>.</p>';
$message = (new Swift_Message('Email Through Swift Mailer'))
->setFrom(['FROM_EMAIL_ADDRESS' => 'FROM_NAME'])
->setTo(['RECEPIENT_1_EMAIL_ADDRESS'])
->setCc(['RECEPIENT_2_EMAIL_ADDRESS'])
->setBcc(['RECEPIENT_3_EMAIL_ADDRESS'])
->setBody($body)
->setContentType('text/html')
->attach(Swift_Attachment::fromPath(__DIR__. '/sample.png'))
->attach(Swift_Attachment::fromPath(__DIR__. '/sample-ebook.pdf'))
;
// Send the message
$mailer->send($message);
echo 'Email has been sent.';
} catch(Exception $e) {
echo $e->getMessage();
}Es dreht sich alles um das Senden von E-Mails über die Swift Mailer-Bibliothek. Sie können Symfony Swift Mailer auch zum Senden von Nachrichten über einige SMTP-Server wie Mailgun, Mandrill usw. verwenden. Ich würde gerne Ihre Gedanken und Vorschläge im Kommentarbereich unten hören.
Zum Thema passende Artikel
- Senden Sie E-Mails mit dem Gmail-SMTP-Server aus dem PHP-Skript
- So senden Sie WordPress-E-Mails über den SMTP-Server
- Senden von E-Mails über den Gmail-SMTP-Server in Laravel

