Etikettarkiv: spf

Så skickar du E-post med Amazon SES

Amazon SES (Simple Email Service) är en relativt ny tjänst från Amazon som ingår i deras sfär med molntjänster även kallat Amazon Web Services (AWS). Tjänsten är till för dig som inte orkar hålla på att konfigurera Sendmail/qmail och hålla koll på köer osv.

Det tar några timmar att komma igång och köra och i mitt fall så valde jag Amazon SES för att skicka ut E-post då någon gör lösenordsåterställning på BloggBackup och Blogbackupr. Kostnaden är $0.10 per 1000 E-brev vilket jag tycker är okej och det finns ingen bindningstid, uppsägningstid osv.

Så här går du till väga för att börja skicka E-post:

1. Skapa ett Amazon AWS-konto samt Amazon SES-behörighet (jag var tvungen att verifiera mig via telefonen då en automatisk röst läser upp en PIN-kod).

2. Ladda hem Amazon SES scripts där ses-verify-email-address.pl ingår. Du måste ange din AWSAccessKeyId samt AWSSecretKey i en fil som perl-scriptet använder sig av. Dessa uppgifter hittar du Account -> Security Credentials. Verifiera sedan din E-post så du kan börja att skicka från den (Amazon mailar en länk som du måste klicka på).

3. Konfiguera SPF och lägg till include:amazonses.com – Eftersom jag använder Google Apps sedan tidigare så har jag även include:_spf.google.com med i min SPF som ser ut så här:

”v=spf1 mx a include:getanewsletter.com include:_spf.google.com  include:amazonses.com ~all”

4. Ladda hem AWS PHP SDK med hjälp av pear:

# pear channel-discover pear.amazonwebservices.com

# pear install aws/sdk

5. Ladda hem Amazon SES PHP Mailer från GitHub: https://github.com/geoloqi/Amazon-SES-Mailer-PHP

6. Testa att skicka enligt ”Usage” som ser ut enligt följande:

<?php   require_once('AmazonSESMailer.php'); // Create a mailer class with your Amazon ID/Secret in the constructor  $mailer = new AmazonSESMailer('your id', 'your secret'); // Then use this object like you would use PHPMailer normally!  $mailer--->AddAddress('[email protected]');
$mailer->SetFrom('[email protected]');
$mailer->Subject = 'Sent from Amazon SES';
$mailer->MsgHtml('This is a test');
$mailer->Send();
?>

7. Begär fullständig access så du kan skicka E-post till vem som helst (utanför sandbox). En verifiering som tar max 24h.

Observera att Amazon SES har en standardgräns på 1000 st E-post om dagen. Du kan dock begära högre quota. Jag tror även att dessa 1000 dagliga E-postbrev om dagen är gratis om du skickar från en Amazon EC2 instans.

Skickar du E-post från din webbtjänst?

Om du har en E-butik, webbtjänst eller liknande och har behov av att skicka E-post till dina användare så bör du läsa detta om du vill att mottagaren skall få dina E-post med större sannorlikhet. Nedan åtgärder genomförde jag för Bloggy för att vissa användare rapporterat att de ej fick någon E-post från Bloggy.

Steg 1

Undersök huruvida de E-post du skickar ut i dagsläget klassificeras som spam. Och ett bra hjälpmedel för detta är spamassassin:

Content analysis details:   (4.7 points, 5.0 required)

 pts rule name              description
---- ---------------------- --------------------------------------------------
-0.0 SPF_HELO_PASS          SPF: HELO matches SPF record
 0.8 HTML_TAG_BALANCE_BODY  BODY: HTML has unbalanced "body" tags
 0.0 HTML_MESSAGE           BODY: HTML included in message
 2.4 HTML_IMAGE_ONLY_08     BODY: HTML: images with 400-800 bytes of words
 1.7 MIME_HTML_ONLY         BODY: Message only has text/html MIME parts
 1.3 SUBJECT_NEEDS_ENCODING SUBJECT_NEEDS_ENCODING
 1.1 HTML_SHORT_LINK_IMG_1  HTML is very short with a linked image
-2.6 AWL                    AWL: From: address is in the auto white-list

Tips: Om du ej kan få tag på ett E-brev i ”rått format” som du skickar ut så har exempelvis Google Mail en funktion som heter ”Visa orginal” där du kan klippa ut innehållet och sedan klistra in det i en textfil och sedan använda kommandot spamassassin -t på innehållet:

# apt-get install spamassassin

# cat epost.txt | spamassassin -t

Som ovan analys visar så innehåller E-brevet ett antal ”fel” som gör att det i högre grad klassificeras som spam.

Steg 2

Då är det dags att försöka förbättra resultatet, de åtgärder jag genomförde var:

  • Installera phpmailer. I mitt fall så skrev jag en funktion som wrappar PHP:s mail()
  • Lägga till en extra radbrytning i början av E-brevet som skickades
  • Ta bort logotypen
  • Korrigera SPF (Sender Policy Framwork). Eller om du ej har någon, lägg till.
  • Korrigera framlänges/baklängesuppslagning på mailservern
  • Verifiera att din DNS-kvalité är hög med dnscheck.se

Och då testar vi med spamassassin igen:

Content analysis details:   (1.2 points, 5.0 required)
 pts rule name              description
---- ---------------------- --------------------------------------------------
-0.0 SPF_HELO_PASS          SPF: HELO matches SPF record
 0.0 HTML_MESSAGE           BODY: HTML included in message
 1.2 AWL                    AWL: From: address is in the auto white-list

Betydligt bättre. Dock är det fortfarande problem att skicka E-post till hotmail.com och efter ett tips från @philip så kontaktade jag Microsoft genom att fylla i följande formulär:

Registrera Er för Smart Network Data Services:
https://postmaster.live.com/snds/index.aspx

Registrera Er för SenderID Partner Program:
https://support.msn.com/eform.aspx?prod … ct=eformts

Registrera Er för Junk Mail Reporting Partner Program:
https://support.msn.com/eform.aspx?prod … ct=eformts

Registrera Er under ”Sender Information for Hotmail Delivery”
https://support.msn.com/eform.aspx?prod … ct=eformts

Samt så la jag till så att framlänges/baklängesuppslagning gick till samma host och ett SPF-record som slutar på ”-all” eller ”~all”.

Läs även vpsforum.se/viewtopic.php?f=10&t=41&sid=b439c6de711987bf75f26ce767650d7d

Gillar du detta inlägg? Pusha gärna på knappen nedan: