AWS Simple Email Services je služba pro odesílání transakčních nebo hromadných emailů. Zde je krátký návod, jak si službu pořídit a zprovoznit.
Jako ostatní služby AWS i tato je zaměřená na poskytování infrastruktury a nenabízí (zatím) to, co běžné newsletterové systémy. Má však jednu zásadní výhodu – cena při velkých objemech odesílaných emailů spolu s vysokou mírou doručitelnosti.
Kdy použít SES?
1. Když rozesíláte transakční emaily (hodně)
Při velkém počtu transkačních emailů (registrace, notifikace, verifikace, pozvánky, …) už není vhodné používat mail() v PHP ani SMTP vašich běžných emailů, protože nastávají problémy s doručitelností a je trochu rizikové mít tyto emaily společné s Vaší firemní poštou třeba i kvůli blacklistování.
2. Když rozesíláte newslettery / kampaně na velký počet příjemců (opravdu velký)
Protože SES není pro běžné lidi uživatelsky použitelný a postrádá hodně funkcí, na které jsme zvyklí u newletterů, existuje docela dobrá nadstavba Sendy.co za 59 dolarů (jednorázová licence). Nainstalujete si Sendy na svůj PHP/MySQL hosting a provozujete si vlastní newsletterový systém sám. Takže pro newslettery doporučuju kombinaci SES+Sendy.co.
Cena za odesílání emailů pomocí SES
Cena za 1000 odeslaných emailů je 0,1 US dolaru = každých 10.000 odeslaných emailů stojí 1 dolar. Můžete porovnat s cenou rozesílky ostatních služeb.
Kdy nepoužít SES?
Když neposíláte velký počet emailů. Buď Vám bude stačit Váš email u poskytovatele hostingu, kde máte limity většinou pár desítek až stovek emailů denně. Je to v ceně hostingu, takže nic navíc neplatíte. Nebo se vejdete se do free nebo nějakého rozumného tarifu u služeb typu Mailchimp, MailerLite a dalších. Zkuste se podívat také na SendFox od Appsumo, který nabízí celoživotní licenci.
Když potřebujete automatizaci emailů a nechcete si ji programovat ve své aplikaci. Newsletterové systémy poskytují široké možnosti, jak prracovat s Vaší databází – můžete si nastavovat sekvence několika emailů za sebou s časovým odstupem, A/B testování, logiku rozesílání podle interakce s předchozími emaily a další vychytávky.
Jak nastavit Amazon AWS SES
Nejprve je potřeba si založit účet na AWS, pokud ho ještě nemáte. Nic to nestojí a pokud nic nevyužíváte, tak nic neplatíte. Účet je vstupem do světa webových služeb Amazonu; můžete být zaskočeni množstvím produktů, které se tam nabízí. Člověk se tam zpočátku snadno ztratí.
Když máte svůj účet, je pro odesílání emailů potřeba nejprve založit nového uživatele – tím je v tomto případě myšlena aplikace, která bude odesílat emaily. V druhém kroku musíte ověřit doménu, za kterou bude SES emaily odesílat. Nejprve Vám povolí pouze sandbox, na kterém si můžete zkoušet, ale možnosti jsou omezené (malý limit, jen vlastní emaily). Až si budete jistí, že chcete posílat naostro, musíte ve třetím kroku požádat Google o povolení limitů.
Krok 1: Založení uživatele
Potřebujete účet v AWS (Amazon Web Services). Přihlaste se tam, najděte sekci IAM (Identity and Access Management) a zde je potřeba přidat nového uživatele, pomocí kterého budete odesílat (vaše aplikace, případně Sendy, WP plugin apod.).
- Add user: User name zvolím tak, abych poznal čemu slouží (např. „mojeaplikace-mailer“)
- Access Type: Programmatic access
- Set permissions: zvolit možnost „Attach existing policies directly“ a najít „AmazonSESFullAccess“, u kterého se zaškrtne checkbox a klikne na Next >.
- V dalším kroku dostanu Access ID a Secret access key. Ty je dobré si někam uložit, pak už se k tajnému klíči nejde dostat. Oba údaje budou potřeba při propojení vašeho systému SES.
Krok 2: Ověření domény pro SES
Z úvodní stránky management console vstoupit do služby Simple Email Service.
V menu nalevo vybrat Domains a zde tlačítko „Verify a New Domain“. V dalším kroku vložit název domény a zaškrtnout také možnost vygenerování DKIM. Po odkliknutí se zobrazí seznam DNS nastavení domény – jeden nový TXT record a dvě nové CName položky. Podle toho je potřeba změnit záznamy domény u poskytovatele, který Vám záznam domény vede (active24, ignum, nethost, godaddy atd.).
U Domena.cz mi to nechtělo ověřit TXT záznam „_amazonses.mojedomena.com“ a povedlo se mi to až při odstranění domény, čili „_amazonses“. Totéž pro CNAME záznamy – zafungovalo až po odstranění domény, čili ve formátu: „xxxxxxxxxxxxxxxxxxxxxxx._domainkey“ a taky pozor, že u CNAME je potřeba většinou přidat na konci tečku:
Name: abcd1234568979asdasdasdasdasxrl._domainkey
Type: CNAME
Value: abcd1234568979asdasdasdasdasxrl.dkim.amazonses.com.
Pozor na poslední uvedenou možnost změnit i MX záznam – ten rozhodně neměnit, protože je pro příjem pošty a ne odesílání. Změnou záznamu MX by přestaly fungovat Vaše běžné emailové služby!
Pokud používáte SPF, tak nezapomeňte SES taky přidat do záznamu SPF „include:amazonses.com„.
Po změně DNS je potřeba nějaký čas, než se změny propíšou napříč internetem (může trvat i hodiny). Až se to stane, tak je potřeba vrátit se do ověření domény v SES a dokončit verifikaci (místo „pending verification“ se zobrazí v seznamu u dané domény „verified“).
Hned pod položkou Domains v levém menu je položka „Email Adresses“ – zde rovnou přidejte emailovou adresu, ze které budete odesílat. Přidá se email, přijde na něj verifikační link, pomocí kterého se adresa ověří.
Samotná implementace odesílání je možná dvěmi hlavními způsoby:
- pomocí SMTP – v tomto případě je ještě potřeba přidat „SMTP Credentials“ – tedy username a heslo, které bude použito při připojování na SMTP.
- přes API pomocí SDK Amazonu
- Sendy nebo další aplikace vytvořené přímo pro SES – prostě do aplikace zadáte Access ID a Secret key a jedete
Krok 3: Žádost o navýšení limitů
Jakmile je vše ověřeno a funguje, tak je možné přistoupit k poslednímu kroku – poslat Amazonu žádost „Request a Sending Limits Increase“, kterou lze najít např. stránce „Sending Statistics“. Vyplní se celý formulář, včetně políčka „Case description“ – uvést důvod navýšení limitu, kolik zhruba atd. Reakci Amazonu lze očekávat v řádu několika málo dní (obykle 1-3).
Poté, co přijde konfirmace, můžete začít odesílat. Je ještě dobré pořešit i zpětnou vazbu k neexistujícím emailům, unsubscribe, reporty označení emailu jako spam pro udržování databáze a vysoké reputaci účtu.
Alternativy SES
Pro transakční emaily se často používá Sendgrid, Mailgun, Mandrill, ale existuje mnoho dalších alternativ. Některé mají lepší recenze ohledně doručitelnosti, rychlosti odesílání, některé kvůli jejich API, některé také používají infrastrukturu SES…
Pro odesílání newsletterů je jich ještě mnohem víc, ale mezi hlavní hráče Mailchip, MailerLite, GetResponse, Drip, ConstantContact, AWeber, SendinBlue, z českých třeba Ecomail.
Užitečné odkazy s dalšími detaily:
https://pehapkari.cz/blog/2017/03/20/jak-posilat-e-maily-pres-amazon-ses
Zdravim vas Radku,
vedeli by ste mi poradit ako riesit dizajn/layout mailov pre SES? Momentalne na mailove kampane vyuzivame autopilothq.com, ktory je v tomto vyborny. Kedze ale infrastrukturu mame na AWS, uvazujeme nad presunom s mailami k Amazonu. SES mame uz v zaklade nastaveny ale zatial som nenasiel sposob ako pracovat s grafickou strankou tela emailu.
Dobrý den Matej,
SES asi není (zatím) úplně vhodný pro řešení designu emailů a automatizaci emailů. Toto je lepší dělat jinde a používat SES jen pro samotné odeslání – můžete použít cokoliv, co podporuje možnost vlastního SMTP (nebo API). Používám Sendy.co, která je pro SES přímo dělaná a obsahuje všechny běžné newsletterové funkce. Taky odesíláme přes SES smtp transakční emaily z web aplikací (design je opět vyřešen v aplikaci a přes amazon jen odchází). Jde takto připojit třeba i CRM systém, support aplikace, outlook atd.