Komma igång med Amazon Simple Email Service (SES)

I denna handledning kommer jag att prata om Amazons enkla e-posttjänst (SES) och gå över några sätt att använda det. SES är en utgående e-posttjänst, vilket innebär att det tillåter dig att skicka e-postmeddelanden genom det.

Varför skulle du behöva en e-posttjänst men? Tja, med många webbhotell, kan du skicka mycket e-postmeddelanden (kanske du har en massa kunder som använder din webbshop). Det kan vara ett problem som värdar tenderar att ha begränsningar. Standardalternativet är att använda Gmail för att skicka e-postmeddelanden, men det har också begränsningar. Det är här SES kommer in som det är utformat för detta exakta syfte. SES gör att e-postmeddelanden är mer tillförlitliga, och med hjälp av en touch av magi hjälper det även dina e-postmeddelanden att undvika SPAM-mappar.

Prissättning

När du registrerar dig för Amazon, kan du använda deras gratis nivå i tolv månader. Den fria tiern ger dig tillgång till alla Amazonas tjänster, men med rimliga begränsningar. SES är till exempel begränsad till 2.000 meddelanden om dagen om du väljer deras EC2-värd.

Annars är kostnaden 0,10 dollar per tusen meddelanden. De betraktar ett enda meddelande som ett meddelande till en enda mottagare. Så om du skickar ett mail till 1000 e-postadresser skulle det kosta dig 10 dollar cent.

Bifoga filer kostar $ 0,12 per GB.

Alternativ för användning av SES

Det finns för närvarande två sätt att använda SES: 

  • Enkel Mail Transfer Protocol (kallas SMTP)
  • SDK API 

De arbetar annorlunda; Med SMTP kan du länka direkt till e-postservern, medan API-metoden låter dig skicka e-postmeddelanden via AWS SES-tjänsten. I denna handledning täcker vi användningen av SMTP-servern via ett WordPress-plugin, då (för de mer våldsamma bland er) tar vi en titt på SDK API.

Snabb SES-kontoinställning

Innan vi gör någonting behöver vi ett konto på SES. Det här visar hur du får ditt konto redo och skickar e-post via konsolen.

Registrera dig för AWS

Innan du kan använda SES måste du registrera dig för ett Amazon Web Services-konto - ett kreditkort krävs även för den kostnadsfria planen. För att registrera dig måste du gå till http://aws.amazon.com/ses, följ instruktionerna på skärmen och slutföra några identitetsbekräftelsestrin.

Efter att du anmält dig har du tillgång till alla Amazonas tjänster.

Verifiera din e-postadress

Oavsett om du använder tjänsten i sandlåda eller produktion, måste du verifiera din "Från" -adress. Du kan hitta mer information om verifiering av e-postadresser i hjälpdokumentationen.

Begär produktionstillgång

När du har fått ett mail kan du sedan begära produktionsåtkomst. Det här låter dig skicka e-postmeddelanden till obekräftade e-postadresser. Antalet e-postmeddelanden som du kan skicka per dag kommer att höjas. 

Notera: Det är klokt att spela i sandlåda innan du skickar riktiga e-postmeddelanden.

Använda WordPress-plugin

Även om Amazon inte har någon officiell plugin för tillfället finns det dock tredjepartspaket där ute än vad som kan göra jobbet. I det här exemplet använder vi ett plugin som heter Amazon SES DKIM Mailer. Detta är ett briljant plugin, kompatibelt med olika e-posttjänster, inklusive Amazon SES. Det betyder att om du bestämde dig för att inte hålla sig till SES behöver du inte ändra din webbplats, bara anslutningsinformationen.

Denna plugin kommer också med DomainKeys Identified Mail (DKIM) support. DKIM handlar om rykte; genom att signera dina e-postmeddelanden med det här kan du förhindra att dina e-postmeddelanden går direkt till skräppostmappen.

installera

Hämtad från plugin dokumentationen på WordPress:

  1. Inaktivera eventuella existerande mailer plugins för att undvika konflikter.
  2. Unzip plugin zip-filen i / wp-content / plugins / directory (eller installera via den inbyggda WordPress plugin installeraren).
  3. Aktivera plugin genom plugins admin-menyn i WordPress.
  4. Klicka på pluginens inställningar länken bredvid dess Avaktivera länk (fortfarande på plugin-sidan), eller klicka på Inställningar> E-postinställningar länk, för att gå till plugins administratörsinställningssida. Anpassa inställningarna för din situation.

Som vi diskuterade tidigare, för att använda Amazon SES i en verklig miljö måste du ansöka om produktionsåtkomst. Utan detta kan du inte skicka e-post till adresser som du inte kontrollerar.

DKIM

För att dra nytta av DKIM måste du skapa en offentlig och privat nyckel och ladda upp din privata nyckel till din server (vi rekommenderar att du namnger det ".htkeyprivate" och placerar det i webbplatsrotten och ställer in behörigheter till 400 eller 440). 

För Windows-användare finns det många online-nyckelgeneratorer som hjälper till att göra detta. På en Linux-server eller Mac kan du skapa egna DKIM-nycklar med ett lösenord för "change-me" med följande terminalkommando: 

openssl genrsa -des3 -pass pass: ändra-mig-ut.htkeyprivate 1024 && openssl rsa -in .htkeyprivate -passin pass: förändra-mig-ut-ut.htkeypublic

För DKIM, ställ in en DNS TXT-post som: 

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

Använd de inbyggda testen för att kontrollera att din blogg kan skicka ut (DKIM-signerade) e-postmeddelanden.

konfigurera

För att säkerställa att plugin är inställd att fungera med AWS SES finns det några inställningar som behöver konfigureras (se skärmdump ovan).

  • Markera Skicka e-post via Amazon SES?
  • Lägg till din AWS Access Key
  • Lägg till din AWS Secret Key
  • Kontrollera att "Från" -adressen är den du validerat tidigare.

Du kan nu använda pluginens Skicka ett testmeddelande. När du väl har fått e-postmeddelandet är du helt redo att använda den.

AWS SDK PHP Tutorial

För mer avancerade användare, i det här avsnittet ska jag visa dig hur du skickar ett mail med SDK. Detta kommer att använda PHP, men det finns också SDK för andra språk.

Du måste först installera SDK. För PHP finns det några sätt att göra detta. Kompositör, Phar, Zip och PEAR. För denna handledning kommer vi att använda Kompositör, som du måste installera först. När du har installerat Composer bör du kunna komma åt den från kommandoradsgränssnittet (CLI).

Skapa en fil i roten till ditt projekt som heter "composer.json", det är här du ska ställa in din konfiguration. Sen Lägg till:

"kräver": "aws / aws-sdk-php": "2. *"

Om du har använt "composer.phar" kan du göra det php composer.phar installera eller på windows kompositör installera. I ditt projekt kan du sedan lägga till kräver '/path/to/sdk/vendor/autoload.php';

Nu när du har gjort det har du tillgång till alla produkt API som AWS tillhandahåller. Det innebär att du nu kan skicka e-postmeddelanden. Så vad behöver du?

Här är ett exempel:

använd Aws \ Ses \ SesClient; kräver "säljare / autoload.php"; $ client = SesClient :: factory (array ('key' => 'AWS_KEY', 'hemlig' => 'AWS_SECRET_KEY', 'region' => 'oss-öst-1')); $ emailSentId = $ client-> sendEmail (array (// Källa krävs 'Source' => '[email protected]', // Destination krävs 'Destination' => array ('ToAddresses' => array @ Meddelande är obligatoriskt "Meddelande" => array (// Ämne krävs "Ämne" => array (// Data krävs "Data '=>' SES Testing ',' Charset ' => 'UTF-8',), // Kropp krävs = Kropp = = array ('Text' => array (// Data krävs 'Data' => 'My plain text email', 'Charset' = ' > 'UTF-8',), 'Html' => array (// Data krävs 'Data' => 'Min HTML-e-postadress',' Charset '=>' UTF-8 ',),),' ReplyToAddresses '=> array (' [email protected] '),' ReturnPath '=>' [email protected] '));

Låt oss springa igenom det. Först lade vi till användningen av namnutrymmet så att koden ser renare ut. Sedan lade vi till komponenten autoload.php-filen.

För att kunna skicka en fil måste vi göra en klient. Detta görs genom att använda SES Client Factory. Det här kan ta många olika inställningar men det minsta behovet vi behöver är nyckeln, hemlighet och region. Du kan hitta nyckeln och hemligheten i IAM Management Console. Regionen är den region som du har använt för SES.

Med det har du nu klientinstallationen och redo att gå. Du kan nu använda klienten att ringa skicka epost. Det finns andra metoder du kan ringa och du kan hitta mer information om dem i hjälpdokumentationen.

De skicka epost Metoden tar en enda parameter som är en matris. Denna array kräver viss data inom den; till exempel krävs källan och måste vara en adress som du har validerat i ditt konto för att tillåta att e-postmeddelanden skickas.

När du har lagt in de e-postmeddelanden som du vill använda och lägger till innehållet i ditt e-postmeddelande kan du nu köra skriptet och du ska ha skickat ditt första e-postmeddelande!

Slutsats

Oavsett vilken implementeringsväg du tar, hoppas jag att denna handledning har piqued ditt intresse och uppmanat dig att ta en titt på Amazon SES! Om du stöter på några problem när du använder SES, kan du fråga om råd i kommentarerna.

Ytterligare resurser

  • Amazon SES Blog
  • Amazon SES-prissättning
  • Amazon SES Dokumentation