✅ WEB- und WordPress-Nachrichten, Themen, Plugins. Hier teilen wir Tipps und beste Website-Lösungen.

Senden Sie E-Mails mit dem Gmail-SMTP-Server und der Swift Mailer-Bibliothek

56

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

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

Aufnahmequelle: artisansweb.net

Diese Website verwendet Cookies, um Ihre Erfahrung zu verbessern. Wir gehen davon aus, dass Sie damit einverstanden sind, Sie können sich jedoch abmelden, wenn Sie möchten. Annehmen Weiterlesen