Guida introduttiva con Amazon Simple Email Service (SES)

In questo tutorial parlerò del Simple Email Service (SES) di Amazon e illustrerò alcuni modi in cui puoi utilizzarlo. SES è un servizio di posta elettronica in uscita, il che significa che ti permetterà di inviare e-mail attraverso di esso.

Perché avresti bisogno di un servizio di posta elettronica? Bene, con molti provider di hosting, l'invio di molte e-mail (forse hai molti clienti che usano il tuo negozio web) può essere un problema in quanto gli host tendono ad avere dei limiti. L'alternativa standard è usare Gmail per inviare e-mail, tuttavia, che ha anche dei limiti. È qui che entra in gioco SES, progettato per questo preciso scopo. SES rende più affidabili le e-mail di invio e, con un tocco di magia, aiuta anche le e-mail a evitare le cartelle SPAM.

Prezzi

Quando ti iscrivi ad Amazon, puoi utilizzare il loro livello gratuito per dodici mesi. Il piano gratuito ti consentirà di accedere a tutti i servizi Amazon, ma con limiti equi. Ad esempio, SES è limitato a 2.000 messaggi al giorno se si opta per il loro hosting EC2.

Altrimenti il ​​costo è di $ 0,10 per mille messaggi. Considerano un singolo messaggio come un unico messaggio per un singolo destinatario. Quindi se invii una e-mail a 1000 indirizzi e-mail ti costerebbe 10 centesimi di dollaro.

Il collegamento dei file costa $ 0,12 per GB.

Opzioni per l'utilizzo di SES

Esistono attualmente due modi per utilizzare SES: 

  • Simple Mail Transfer Protocol (comunemente noto come SMTP)
  • L'API SDK 

Funzionano diversamente; l'SMTP consente di collegarsi direttamente al server di posta elettronica, mentre il metodo API consente di inviare e-mail tramite il servizio SES di AWS. In questo tutorial copriremo l'uso del server SMTP tramite un plug-in di WordPress, quindi (per i più audaci tra voi) daremo un'occhiata all'utilizzo dell'API SDK.

Configurazione account SES rapido

Prima di fare qualsiasi cosa, avremo bisogno di un account su SES. Questo ti mostrerà come preparare il tuo account e inviare email usando la console.

Registrati per AWS

Prima di poter utilizzare SES è necessario registrarsi per un account Amazon Web Services - è richiesta una carta di credito, anche per il piano gratuito. Per iscriverti devi visitare http://aws.amazon.com/ses, seguire le istruzioni visualizzate e completare alcuni passaggi di conferma dell'identità.

Dopo la registrazione, avrai accesso a tutti i servizi di Amazon.

Verifica il tuo indirizzo email

Indipendentemente dal fatto che tu stia utilizzando il servizio in sandbox o in produzione, dovrai verificare il tuo indirizzo "Da". È possibile trovare ulteriori informazioni sulla verifica degli indirizzi e-mail nella documentazione della guida.

Richiedi l'accesso alla produzione

Dopo aver ricevuto un'e-mail, è possibile richiedere l'accesso alla produzione. Ciò ti consentirà di inviare e-mail a indirizzi e-mail non verificati. Il numero di email che è possibile inviare al giorno sarà aumentato. 

Nota: È consigliabile giocare in modalità sandbox prima di inviare email reali.

Utilizzando il plugin WordPress

Mentre Amazon non ha attualmente un plugin ufficiale, ci sono tuttavia pacchetti di terze parti là fuori che possono fare il lavoro. In questo esempio useremo un plugin chiamato Amazon SES DKIM Mailer. Questo è un plugin geniale, compatibile con diversi servizi di posta elettronica tra cui Amazon SES. Ciò significa che se hai deciso di non aderire a SES, non devi modificare il tuo sito, ma solo i dettagli della connessione.

Questo plugin viene fornito anche con il supporto DKIM (DomainKeys Identified Mail). DKIM riguarda la reputazione; firmando le tue e-mail con questo puoi impedire alle e-mail di andare direttamente alla cartella della posta indesiderata.

Installazione

Tratto dalla documentazione del plugin su WordPress:

  1. Disattivare eventuali plugin di mailer esistenti per evitare conflitti.
  2. Decomprimi il file zip del plugin all'interno della directory / wp-content / plugins / (o installa tramite il programma di installazione plug-in di WordPress integrato).
  3. Attiva il plugin attraverso il plugin menu di amministrazione in WordPress.
  4. Clicca sul plugin impostazioni link accanto al suo Disattivare link (ancora sulla pagina Plugin), o fare clic su Impostazioni> Impostazioni Mail link, per andare alla pagina delle impostazioni di amministrazione del plugin. Personalizza le impostazioni per la tua situazione.

Come abbiamo discusso in precedenza, per utilizzare Amazon SES in un ambiente reale, è necessario richiedere l'accesso alla produzione. Senza questo, non sarai in grado di inviare email ad indirizzi che non controlli.

DKIM

Per sfruttare DKIM devi generare una chiave pubblica e privata e caricare la tua chiave privata sul tuo server (ti consigliamo di denominarla ".htkeyprivate" e posizionarla nella radice del sito web e impostare le autorizzazioni su 400 o 440). 

Per gli utenti di Windows ci sono molti generatori di chiavi online per aiutare a fare questo. Su un server Linux o Mac puoi generare le tue chiavi DKIM con una password di "change-me" usando il seguente comando di terminale: 

openssl genrsa -des3 -passout pass: change-me -out .htkeyprivate 1024 && openssl rsa -in .htkeyprivate -passin pass: change-me -pubout -out .htkeypublic

Per DKIM, imposta un record TXT DNS come: 

HOST: your-selector._domainkey.example.com. TXT VALUE: v = DKIM1; k = rsa; g = *; s = e-mail; h = sha1; t = s; p = your-chiave pubblica;

Utilizza i test integrati per verificare che il tuo blog possa inviare e-mail correttamente firmate (DKIM).

Configurazione

Per garantire che il plug-in sia impostato per funzionare con AWS SES, è necessario configurare alcune impostazioni (vedere la schermata sopra).

  • Spunta il Invia e-mail tramite Amazon SES?
  • Aggiungi la tua chiave di accesso AWS
  • Aggiungi la tua chiave segreta di AWS
  • Assicurati che l'indirizzo "Da" sia quello che hai convalidato in precedenza.

Ora puoi usare il plugin Invia un messaggio di prova. Una volta ricevuta con successo l'email, sei completamente pronto per usarlo.

Esercitazione PHP AWS SDK

Per gli utenti più avanzati, in questa sezione ho intenzione di mostrare come inviare un messaggio di posta elettronica utilizzando l'SDK. Questo utilizzerà PHP, tuttavia, ci sono SDK anche per altre lingue.

Dovrai prima installare l'SDK. Per PHP ci sono alcuni modi per farlo; Compositore, Phar, Zip e PERA. Per questo tutorial useremo Composer, che dovrai prima installare. Una volta installato Composer dovresti poterlo accedere dalla Command Line Interface (CLI).

Crea un file nella radice del tuo progetto chiamato "compositore.json", questo è dove metti la tua configurazione. Quindi aggiungi:

"require": "aws / aws-sdk-php": "2. *"

Se hai usato il "compositore.phar", allora puoi farlo installazione php composer.phar o su Windows installazione di compositore. Nel tuo progetto puoi aggiungere richiede '/path/to/sdk/vendor/autoload.php';

Ora che hai fatto ciò, hai accesso a tutte le API del prodotto fornite da AWS. Ciò significa che ora puoi inviare e-mail. Allora, di cosa hai bisogno?

Ecco un esempio:

utilizzare Aws \ Ses \ SesClient; richiedere "fornitore / autoload.php"; $ client = SesClient :: factory (array ('chiave' => 'AWS_KEY', 'secret' => 'AWS_SECRET_KEY', 'region' => 'us-east-1')); $ emailSentId = $ client-> sendEmail (array (// è richiesto Source 'Source' => '[email protected]', // La destinazione è richiesta 'Destination' => array ('ToAddresses' => array ('to @ email.com ')), // È richiesto un messaggio' Message '=> array (// È richiesto l'oggetto' Subject '=> array (// I dati sono obbligatori' Data '=>' SES Testing ',' Charset ' => 'UTF-8',), // Corpo è richiesto 'Corpo' => array ('Testo' => array (// I dati sono obbligatori 'Dati' => 'Il mio messaggio di posta elettronica', 'Set di caratteri' = > 'UTF-8',), 'Html' => array (// I dati sono obbligatori 'Data' => 'La mia email HTML',' Charset '=>' UTF-8 ',),),),' ReplyToAddresses '=> array (' [email protected] '),' ReturnPath '=>' [email protected] '));

Corriamo attraverso questo. Per prima cosa abbiamo aggiunto l'uso dello spazio dei nomi per rendere il codice più pulito. Quindi abbiamo aggiunto il file autoload.php del compositore.

Per poter effettivamente inviare un file dobbiamo creare un client. Questo viene fatto usando SES Client Factory. Questo può richiedere molte impostazioni diverse, ma il minimo indispensabile di cui abbiamo bisogno è la chiave, il segreto e la regione. È possibile trovare la chiave e il segreto in IAM Management Console. La Regione è la regione che hai utilizzato per il SES.

Con quello ora hai il setup del client e sei pronto per partire. Ora puoi usare il client per chiamare invia una email. Esistono altri metodi che è possibile chiamare e è possibile trovare ulteriori informazioni su di essi nella documentazione della guida.

Il invia una email il metodo accetta un singolo parametro che è una matrice. Questo array richiede determinati dati al suo interno; ad esempio è richiesta la fonte e deve essere un indirizzo che hai convalidato nel tuo account per consentire l'invio di e-mail.

Dopo aver inserito le e-mail che desideri utilizzare e aggiunto il contenuto della tua e-mail, ora puoi eseguire lo script e avrai inviato la tua prima e-mail!

Conclusione

Qualunque sia la via di implementazione, spero che questo tutorial abbia suscitato il tuo interesse e ti abbia incoraggiato a dare un'occhiata a Amazon SES! Se incontri problemi durante l'uso di SES, sentiti libero di chiedere un consiglio nei commenti.

Ulteriori risorse

  • Blog di Amazon SES
  • Prezzi di Amazon SES
  • Documentazione Amazon SES