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/swiftmailer
Da 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.php
in 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 attach
method 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