Amazon (SES) Simple Email Service la posta tramite cloud
da Davide Riboldi · pubblicato il 2 giugno, 2014 · modificato il 5 ottobre, 2016

Amazon SES è un servizio di posta elettronica (outbound-only) che permette in modo semplice ed economico l’invio di posta elettronica. Il servizio può essere utilizzato per l’invio di email di marketing (ad esempio offerte), transactional email (come conferme d’ordine), newsletters etc,etc. Si pagano solo le spedizioni che si utilizzano, quindi è possibile inviare grandi o piccole quantità di messaggi email a seconda delle proprie esigenze senza la necessità di sottoscrivere abbonamenti anticipati.

Introduzione

L’invio di una email verso internet avviene attraverso un server di posta di uscita che la prende in carico e la inoltra verso la destinazione finale. Questi server di posta possono essere il server del nostro Internet Service Provider (ISP), un server aziendale oppure un server di posta configurato ad hoc. Quando si utilizza il servizio Amazon SES, il server di posta in uscita diventa Amazon SES stesso, anche se è possibile continuare ad utilizzare il proprio server di posta e successivamente inoltrare le email verso SES.

Con Amazon SES si elimina la complessità di implementare e mantenere una soluzione di invio email all’interno della propria azienda, infatti anche se la spedizione delle mail può sembrare una funzione molto semplice, in realtà nasconde molte complessità che cercheremo di vedere nel proseguimento di questo articolo. Utilizzando il servizio SES possiamo risolvere questi aspetti con facilità e senza complesse infrastrutture.

Cosa controllare

Se ci dovessimo fare carico delle problematiche che riguardano la spedizione di email dovremmo tenere sotto controllo molte cose, ad esempio memorizzare la % delle email che arrivano a destinazione e quelle che vengono bloccate perché considerate spam, bisognerebbe fare attenzione a non inviare troppe email nel giro di poco tempo perché l’ISP potrebbe giudicare l’alto numero di invii come un tentativo di inviare SPAM e bloccare così l’indirizzo IP del nostro server. Un altro aspetto da gestire sarebbe quello di tenere traccia delle email che vengono respinte (bounce email) per un errore di spedizione o perché l’indirizzo email del destinatario non esiste. In ogni caso bisognerebbe non rispedire su questi indirizzi o differenziare i nuovi tentativi.

Amazon SES può inviare messaggi di notifica al verificarsi di questi problemi e fornire un accesso in tempo reale alle statistiche che riguardano il numero di email che sono state inviate e quelle che non sono state inviate per i motivi sopra elencati. Gestirà automaticamente i tempi di spedizione tra le varie mail in base alla nostra credibilità e alla storia delle spedizioni passate, in maniera da non incorrere in penalizzazioni.

Strumenti di spedizione

Il metodo più utilizzato e immediato per spedire le mail tramite Amazon SES è quello di utilizzare il protocollo SMTP (Simple Mail Transfer Protocol) che può essere gestito da tutti i server di posta elettronica in circolazione, con SMTP possiamo anche utilizzare alcuni linguaggi di programmazione come ad esempio le librerie di Java.

Amazon console: questa è la strada più veloce per impostare il servizio e inviare alcune email di test, ma una volta in produzione si devono usano gli altri strumenti. Possiamo utilizzare la console anche per leggere le statistiche collegate al nostro profilo.

Amazon API: tramite questo strumento è possibile implementare nei propri programmi delle chiamate dirette ad Amazon SES e spedire messaggi di posta elettronica legati ad eventi specifici, ad esempio la conferma di un’ordine, messaggi di buon compleanno ai propri clienti, etc etc. Le API che riguardano i servizi di Amazon possono essere usate con diversi linguaggi di programmazione in base al pacchetto SDK utilizzato.

Email Deliverability

Se vogliamo che i destinatari possano leggere le nostre email e che non vengano considerate SPAM, bisogna incrementare l’email deliverability, la percentuale delle email che arrivano a destinazione. Per poter massimizzare questo aspetto e conoscere cosa succede nelle nostre spedizioni bisogna eseguire i seguenti passaggi:

Amazon SES

Capire i problemi di consegna: nella maggior parte dei casi le email arrivano sempre a destinazione, ma in alcuni casi l’invio può non andare a buon fine. In questi casi bisogna capire il perché e prendere decisioni diverse in base ai differenti motivi.

Prevenire: uno dei più grandi problemi in internet legati alla posta elettronica sono le email indesiderate o SPAM. Gli attuali ISP (Internet Service Provider) prendono diverse contromisure per cercare di arginare questo fenomeno, quindi dobbiamo cercare di seguire alcune regole specifiche per non rientrare in questa categoria.

Rimanere informati: quando un invio fallisce o un destinatario si lamenta della email che ha ricevuto (funzione disponibile su molti ISP), Amazon SES tiene traccia di questi problemi inviando delle notifiche e mantenendo delle statistiche dettagliate.

Migliorare i programmi: una volta capiti bene tutti i motivi di invio falliti e i problemi ad essi associati si può anche intervenire per cambiare la logica del nostro programma di spedizione e migliorarlo, il tutto dipenderà anche dalla tecnica utilizzata.

Terminologia

Prima di utilizzare il servizio di Amazon SES bisogna conoscere alcuni termini utilizzati dal servizio e i concetti generali ad essi associati. Infatti anche se il servizio risulta semplice dal punto di vista della configurazione per essere utilizzato al meglio bisogna conoscere i meccanismi e i controlli che si nascondono dietro al servizio stesso.

Bounce: quando la consegna di una email fallisce e non arriva a destinazione, il destinatario rimanda indietro il messaggio al server di origine su Amazon SES. I motivi per il quale l’email può essere stata respinta sono principalmente due:

  • Hard Bounce: quando si verifica un errore permanente nell’invio della email, come ad esempio quando la mailbox di destinazione non esiste o non esiste più.
  • Soft Bounce: quando si verifica un errore temporaneo nell’invio della email, come potrebbe essere la casella di posta piena o il server dell’ISP non raggiungibile.

Complaint (reclamo): molti programmi di posta forniscono la possibilità di classificare le email come SPAM e di inviare la notifica al fornitore del servizio. In aggiunta molti ISP hanno una casella di posta (es. abuse@example.net) dove è possibile inoltrare le email che non vogliamo più ricevere. Entrambi i casi risulteranno come se il destinatario stia chiedendo all’ISP di bloccare le email indesiderate. In questi casi il provider invierà un feedback a SES che girerà questa informazione al vostro account.

Suppression list: è una lista di indirizzi che Amazon SES non considera validi (blacklist) perché hanno generato un hard bounce negli ultimi 14 giorni. Se si tenta di inviare una email ad un indirizzo della lista, la chiamata verso SES avviene con successo, ma Amazon tratterà questa email come un hard bounce e non eseguirà alcun invio.

Verification: sfortunatamente uno spammer può falsificare l’header di una email facendo credere che sia stata inviata da un’altro indirizzo. Per mantenere questo rapporto di fiducia con gli ISP, Amazon SES richiede che chi spedisce sia veramente la persona che dice di essere. Quindi di conseguenza il servizio di Amazon SES richiede che vengano verificati tutti gli indirizzi di posta elettronica utilizzati per l’invio. Questa verifica può essere fatta attraverso la console o tramite le Amazon API.

Authentication: identificarsi è un altro modo per poter dire al nostro ISP chi veramente siamo. Quando si autentica una email si devono fornire prove evidenti sul proprietario dell’account e che la email non sia stata modificata durante il tragitto. Alcuni ISP rifiutano email che non siano autenticate. Amazon SES fornisce due diversi metodi di autenticazione: Sender Policy Framework e DomainKeys Identified Mail.

Sending limits: se un ISP rileva dei picchi improvvisi o inaspettati nel volume di email o nella frequenza di invio potrebbe etichettare come spam le email e bloccarle. Per questo motivo ogni account SES ha una serie di limiti che regolano il numero di email che possono essere spedite e la frequenza con la quale possono essere inviate.

Content filtering: molti ISP utilizzano il content filter per determinare se le email che arrivano sono spam. Il content filter analizza l’email alla ricerca di contenuti discudibili e che possano essere considerati spam, a quel punto la mail viene bloccata. Anche SES utilizza degli strumenti di “content filter” per le email che attraversano il servizio.

ReputationAmazon SES mantiene una forte reputazione con gli ISP ed è per questo che richiede a chi usufruisce del loro servizio un livello di reputation di alta qualità. Il livello di reputation influenza i limiti di invio delle email che Amazon SES impone. Se le email sono di qualità i limiti si alzano, se le email vengono considerate spam o aumentano le email respinte (bounce) allora i limiti si abbassano.

Utilizzo delle API

E’ possibile effettuare le chiamate alle API SendEmail e SendRawEmail, la quantità di informazioni che bisogna fornire dipendono da quale API viene richiamata.

  • La SendEmail API richiede: mittente, destinatario, oggetto, contenuto e reply-to. Quando si richiama questa API, Amazon assembla una email formattata (MIME).
  • La SendRawEmail API ci permette di formattare e inviare un messaggio raw da noi creato, specificando: Headers, MIME e il tipo di contenuto. Questa API viene utilizzata per un’uso avanzato che riguarda il messaggio di posta elettronica.

Management console

Se selezioniamo il servizio di Amazon SES dalla pagina home della nostra management console vedremo subito un menu principale sulla sidebar laterale e alcuni grafici con le informazioni più importanti legate al nostro account.

Amazon SES

Il menu principale di Amazon SES permette le operazioni di configurazione iniziale come SMTP setting, suppression list e verifica del sender sia come indirizzo di posta elettronica singolo che come intero dominio.

Guida completa su AWS

Questo articolo appartiene ad una serie di pubblicazioni che costituiscono una guida completa dedicata agli Amazon Web Services.  Molti servizi che trattiamo in questo blog vengono anche spiegati con dei video che trovate nel nostro canale youtube. Se volete seguire questo percorso didattico iscrivetevi alla community Cloud AWS.

2 Commenti

  1. Ottimo articolo. E, come far per ricevere le emails dal proprio client di posta locale, esempio con Outlook, Mail, Entourage? Adesso riesco perfettamente ad inviare email usando l'SMTP del mio account SES. Ma quale SMTP devo usare per ricevere le email? Ho anche configurato WorkMail su Amazon, definito il record MX... ma quando tento di ricevere le email con Entourage, ricevo errore server non trovato oppure attesa infinita. Qualche idea?

  2. Ciao Marcel, Amazon SES serve solo per le spedizioni, ed è studiato per le funzioni server piú per un client di posta. Mentre come giustamente hai indicato WorkMail puó essere utilizzato al posto di un server exchange. Per prima cosa controlla nella documentazione i client al momento consentiti e se puó esserti di aiuto guarda il nostro video su WorkMail.
    https://www.youtube.com/watch?v=EaiazdHsTVU

condividi