In diesem Tutorial werde ich über den Simple Email Service (SES) von Amazon sprechen und einige Möglichkeiten aufzeigen, wie Sie ihn nutzen können. SES ist ein ausgehender E-Mail-Dienst, dh Sie können damit E-Mails senden.
Warum brauchen Sie einen E-Mail-Service? Bei vielen Hosting-Providern kann das Versenden einer großen Anzahl von E-Mails (möglicherweise haben Sie eine große Anzahl von Kunden, die Ihren Webshop nutzen) ein Problem sein, da Hosts in der Regel Einschränkungen haben. Die Standardalternative besteht darin, Google Mail zum Versenden von E-Mails zu verwenden. Dies hat jedoch auch Einschränkungen. Hier setzt SES an, da es genau für diesen Zweck entwickelt wurde. SES macht das Versenden von E-Mails zuverlässiger. Mit einem Hauch von Magie hilft es auch Ihren E-Mails, SPAM-Ordner zu vermeiden.
Wenn Sie sich bei Amazon anmelden, können Sie die kostenlose Stufe für zwölf Monate nutzen. Über die kostenlose Stufe haben Sie Zugriff auf alle Amazon-Dienste, jedoch mit gewissen Einschränkungen. Zum Beispiel ist SES auf 2.000 Nachrichten pro Tag beschränkt, wenn Sie sich für das EC2-Hosting entscheiden.
Ansonsten betragen die Kosten 0,10 US-Dollar pro tausend Nachrichten. Sie betrachten eine einzelne Nachricht als eine Nachricht an einen einzelnen Empfänger. Wenn Sie also eine E-Mail an 1000 E-Mail-Adressen senden, würde dies 10 Cent kosten.
Das Anhängen von Dateien kostet 0,12 USD pro GB.
Derzeit gibt es zwei Möglichkeiten, SES zu verwenden:
Sie arbeiten anders. Mit SMTP können Sie eine direkte Verbindung zum E-Mail-Server herstellen, während die API-Methode das Senden von E-Mails über den AWS SES-Dienst ermöglicht. In diesem Tutorial behandeln wir die Verwendung des SMTP-Servers über ein WordPress-Plugin. Dann schauen wir uns (für die Mutigsten unter Ihnen) die Verwendung der SDK-API an.
Bevor wir etwas unternehmen, benötigen wir ein Konto bei SES. Hier erfahren Sie, wie Sie Ihr Konto einrichten und E-Mails über die Konsole versenden können.
Bevor Sie SES verwenden können, müssen Sie sich für ein Amazon Web Services-Konto anmelden. Eine Kreditkarte ist erforderlich, selbst für den kostenlosen Tarif. Um sich anzumelden, gehen Sie zu http://aws.amazon.com/ses, befolgen Sie die Anweisungen auf dem Bildschirm und führen Sie einige Schritte zur Bestätigung der Identität aus.
Nach der Anmeldung haben Sie Zugriff auf alle Amazon-Dienste.
Unabhängig davon, ob Sie den Dienst in einer Sandbox oder in der Produktion verwenden, müssen Sie Ihre Absenderadresse überprüfen. Weitere Informationen zum Überprüfen von E-Mail-Adressen finden Sie in der Hilfedokumentation.
Nachdem Sie eine E-Mail erhalten haben, können Sie den Produktionszugang anfordern. Dadurch können Sie E-Mails an nicht überprüfte E-Mail-Adressen senden. Die Anzahl der E-Mails, die Sie pro Tag senden können, wird erhöht.
Hinweis: Es ist ratsam, im Sandbox-Modus zu spielen, bevor Sie echte E-Mails senden.
Während Amazon derzeit kein offizielles Plugin hat, gibt es jedoch Pakete von Drittanbietern, die den Job erledigen können. In diesem Beispiel verwenden wir ein Plugin namens Amazon SES DKIM Mailer. Dies ist ein brillantes Plugin, das mit verschiedenen E-Mail-Diensten, einschließlich Amazon SES, kompatibel ist. Das heißt, wenn Sie sich entschieden haben, nicht bei SES zu bleiben, müssen Sie nicht nur Ihre Site ändern, sondern nur die Verbindungsdetails.
Dieses Plugin wird auch mit DomainKeys Identified Mail (DKIM) unterstützt. Bei DKIM geht es um Reputation; Indem Sie Ihre E-Mails damit signieren, können Sie verhindern, dass Ihre E-Mails direkt in den Junk-Ordner geleitet werden.
Aus der Plugin-Dokumentation zu WordPress entnommen:
Um Amazon SES in einer realen Umgebung zu verwenden, müssen Sie, wie bereits erwähnt, einen Produktionszugriff beantragen. Ohne diese Option können Sie keine E-Mails an Adressen senden, auf die Sie keinen Einfluss haben.
Um DKIM nutzen zu können, müssen Sie einen öffentlichen und einen privaten Schlüssel generieren und Ihren privaten Schlüssel auf Ihren Server hochladen (wir empfehlen, ihn als ".htkeyprivate" zu benennen und ihn in das Stammverzeichnis der Website zu setzen und die Berechtigungen auf 400 oder 440 festzulegen.).
Für Windows-Benutzer gibt es viele Online-Schlüsselgeneratoren, die dies unterstützen. Auf einem Linux-Server oder Mac können Sie mit dem folgenden Terminalbefehl Ihre eigenen DKIM-Schlüssel mit dem Kennwort "change-me" generieren:
openssl genrsa -des3 -passout pass: change-me -out .htkeyprivate 1024 && openssl rsa -in .htkeyprivate -passin pass: change-me -pubout -out .htkeypublic
Legen Sie für DKIM einen DNS-TXT-Eintrag fest, etwa:
HOST: your-selector._domainkey.example.com. TXT-WERT: v = DKIM1; k = rsa; g = *; s = E-Mail; h = sha1; t = s; p = Ihr öffentlicher Schlüssel;
Verwenden Sie die integrierten Tests, um zu überprüfen, ob Ihr Blog E-Mails ordnungsgemäß versenden kann (mit DKIM signiert).
Um sicherzustellen, dass das Plugin für die Verwendung mit AWS SES konfiguriert ist, müssen einige Einstellungen konfiguriert werden (siehe Abbildung oben)..
Sie können jetzt das Plugin verwenden Senden Sie eine Testnachricht. Nachdem Sie die E-Mail erfolgreich erhalten haben, können Sie sie vollständig nutzen.
Fortgeschrittene Benutzer erfahren in diesem Abschnitt, wie Sie eine E-Mail mit dem SDK senden. Dies wird PHP verwenden, es gibt jedoch auch SDKs für andere Sprachen.
Sie müssen zuerst das SDK installieren. Für PHP gibt es dazu einige Möglichkeiten. Komponist, Phar, Zip und PEAR. Für dieses Tutorial verwenden wir Composer, den Sie zuerst installieren müssen. Sobald Sie Composer installiert haben, sollten Sie über die Befehlszeilenschnittstelle (CLI) darauf zugreifen können..
Erstellen Sie im Stammverzeichnis Ihres Projekts eine Datei mit dem Namen "composer.json". Hier werden Sie Ihre Konfiguration speichern. Dann füge hinzu:
"required": "aws / aws-sdk-php": "2. *"
Wenn Sie die "composer.phar" verwendet haben, können Sie dies tun php composer.phar installieren
oder an Fenstern Komponist installieren
. In Ihrem Projekt können Sie dann hinzufügen erfordern '/path/to/sdk/vendor/autoload.php';
Nachdem Sie dies getan haben, haben Sie Zugriff auf alle von AWS bereitgestellten Produkt-APIs. Das bedeutet, dass Sie jetzt E-Mails senden können. Also was brauchst du?
Hier ist ein Beispiel:
verwende Aws \ Ses \ SesClient; erfordern 'vendor / autoload.php'; $ client = SesClient :: factory (array ('key' => 'AWS_KEY', 'secret' => 'AWS_SECRET_KEY', 'region' => 'us-east-1')); $ emailSentId = $ client-> sendEmail (Array (// Quelle ist 'Source' => '[email protected]' erforderlich), // Ziel ist 'Destination' => Array ('ToAddresses' => Array ('bis. to) @ email.com ')), // Nachricht ist erforderlich' Message '=> Array (// Betreff ist erforderlich' Subject '=> Array (// Daten sind erforderlich' Data '=>' SES Testing ',' Charset ' => 'UTF-8',), // Body ist erforderlich 'Body' => Array ('Text' => Array (// Daten sind erforderlich 'Data' => 'Meine Nur-Text-E-Mail', 'Charset' = > 'UTF-8',), 'Html' => Array (// Daten sind erforderlich 'Data' => 'Meine HTML-E-Mail',' Charset '=>' UTF-8 ',),),),' ReplyToAddresses '=> array (' [email protected] '),' ReturnPath '=>' [email protected] ')));
Lass uns das durchgehen. Zuerst haben wir den Namespace hinzugefügt, damit der Code sauberer aussieht. Dann haben wir die Composer-Datei autoload.php hinzugefügt.
Um tatsächlich eine Datei senden zu können, müssen wir einen Client erstellen. Dies geschieht mithilfe der SES Client Factory. Dies kann viele verschiedene Einstellungen erfordern, aber das absolute Minimum, das wir brauchen, ist der Schlüssel, das Geheimnis und die Region. Sie finden den Schlüssel und das Geheimnis in der IAM Management Console. Die Region ist die Region, die Sie für den SES verwendet haben.
Damit haben Sie nun den Client eingerichtet und können loslegen. Sie können den Client jetzt zum Anrufen verwenden E-Mail senden
. Es gibt andere Methoden, die Sie aufrufen können. Weitere Informationen dazu finden Sie in der Hilfedokumentation.
Das E-Mail senden
Die Methode verwendet einen einzelnen Parameter, der ein Array ist. Dieses Array erfordert bestimmte Daten darin. Beispielsweise ist die Quelle erforderlich und muss eine Adresse sein, die Sie in Ihrem Konto überprüft haben, um das Senden von E-Mails zu ermöglichen.
Nachdem Sie die E-Mails eingegeben haben, die Sie verwenden möchten, und den Inhalt Ihrer E-Mail hinzugefügt haben, können Sie das Skript jetzt ausführen und Sie müssen Ihre erste E-Mail senden!
Welchen Implementierungsweg Sie auch wählen, ich hoffe, dieses Tutorial hat Ihr Interesse geweckt und Sie dazu ermutigt, sich Amazon SES anzuschauen! Wenn Sie bei der Verwendung von SES auf Probleme stoßen, fragen Sie in den Kommentaren nach Rat.