From, http://aws.amazon.com/ses/ :
Amazon Simple Email Service (Amazon SES) is a highly scalable and cost-effective bulk and transactional email-sending service for businesses and developers. Amazon SES eliminates the complexity and expense of building an in-house email solution or licensing, installing, and operating a third-party email service. The service integrates with other AWS services, making it easy to send emails from applications being hosted on services such as Amazon EC2. With Amazon SES there is no long-term commitment, minimum spend or negotiation required - businesses can utilize a free usage tier and after that enjoy low fees for the number of emails sent plus data transfer fees.
Dada Mail has support for Amazon SES, both by using the Amazon SES API and using the Amazon SES SMTP Interface. The SMTP Interface is probably easier to set up, it's possible that the SES API is faster.
If you're having trouble sending messages using your hosting account's mail server, perhaps because of the time it takes to complete a mass mailing, or because of the amount of mail you're sending, using Amazon SES may be an interesting alternative.
Amazon SES costs around $0.10 per thousand messages you send. See:
http://aws.amazon.com/ses/pricing/
for current pricing. Using the service in a non-production mode is free.
Dada Mail does not currently work 100% with Amazon's EC2 hosting, which is something else, entirely.
Support for Amazon SES is currently labeled as, Experimental (as Amazon labels SES itself as, Beta). We would love your feedback on how it's working for you, but please understand there may be a few unknowns left to uncover.
Some things to consider:
Since Amazon SES is an outside, third party sending service, you'll absolutely need to use a mailing list that's 100% confirmed opt-in. If you don't, complaints of abuse sent to Amazon, manually sent or automatically sent, will most likely disallow you from furthering your use of their service.
Here's the overview of Bounce support for SES: http://docs.amazonwebservices.com/ses/latest/DeveloperGuide/index.html
Dada Mail's support for bounce handling w/SES sending is also Experimental. We'd love to get your feedback.
When you use Dada Mail with SES, Dada Mail will set the Return-Path
header explicitly.
Dada Mail's included bounce handler has rules specifically for Amazon SES.
One caveat of using Bounce Handler is that the Bounce Handler email address has to be verified by Amazon to receive the bounces, just like you would verify a sender. Best thing to do would be to create the bounce handler email address and verify it before you configure the Bounce Handler and the rest of Dada Mail with this address, since Bounce Handler will not automatically verify itself - it'll most likely simply ignore the request.
Currently, Dada Mail relies heavily on the Amazon SES Developer Tools and the scripts that come with it to send out email messages using Amazon SES. You'll need to separately install these scripts.
v4.9.0 of Dada Mail does not need the ses-send-email.pl script, but instead uses it's own (superior, I think) method in its place.
Sending via Amazon SES is done with a persistent HTTP connection (as of v4.9.0 of Dada Mail), so performance shouldn't be too bad. Expect around .3 seconds/message for just passing the email message from Dada Mail to the Amazon SES service.
It's not known how performance compares to the SES API.
Since every email address that's set in the From:
header of any outgoing email message sent through Amazon SES, setting up a discussion list using it is probably unrealistic.
Amazon has a list of supported email headers:
http://docs.amazonwebservices.com/ses/latest/DeveloperGuide/AppendixHeaders.html
Dada Mail usually sends messages out with a different set of email headers:
The, Message-ID header will be sent as the, X-Message-ID header.
The, List header will be sent as the, X-List header.
Email headers that are not supported by Amazon SES are automatically not sent out.
Amazon SES starts out with a small sending quota - 1,000 messages you may send in 24 hours, with a maximum 1 message you can send every second. This quota can grow (and quickly), but make sure not to try to send out quicker than your quota can grow.
http://docs.amazonwebservices.com/ses/latest/DeveloperGuide/index.html
Begin the signup procedure for Amazon's AWS:
https://aws-portal.amazon.com/gp/aws/developer/registration
You'll be asked to create a new Amazon account and give Amazon your payment information.
None of this information will be saved within Dada Mail.
There's a few steps you need to take, before you can start using the Amazon SES API with Dada Mail. None of them are particularily hard, but it's suggested you have a fairly good understanding on how to administrate your own hosting account, can make simple edits to already-created perl scripts and don't mind taking a little while to make sure everything is working. Take the time to set everything up correctly.
The Amazon SES Developer Tools are located at:
http://aws.amazon.com/code/Amazon-SES/8945574369528337
As of 11/17/11, this is the direct link to the developer tools:
http://d36cz9buwru1tt.cloudfront.net/catalog/attachments/ses-tools-2011-10-31.zip
These scripts require you to create a AWS Credentials file, which is outlined here:
http://docs.amazonwebservices.com/ses/latest/DeveloperGuide/InitialSetup.Scripts.html
Once you've created the AWS credentials file, you'll want to try out and test the SES scripts, ses-send-email.pl
and ses-verify-email-address.pl
individually. Docs on these three scripts are located at:
http://docs.amazonwebservices.com/ses/latest/DeveloperGuide/SendingEmail.Raw.html
http://docs.amazonwebservices.com/ses/latest/DeveloperGuide/InitialSetup.EmailVerification.html
http://docs.amazonwebservices.com/ses/latest/DeveloperGuide/ManagingActivity.SendingLimits.html
None of the Amazon AWS credentials are stored within Dada Mail - only in that AWS Credentials file.
But, you'll need to tell Dada Mail where that AWS Credentials file is, as well as two of the three scripts, ses-verify-email-address.pl
and ses-get-stats.pl
(ses-send-email.pl
is not used directly by Dada Mail).
In your .dada_config
file, add the following lines:
$AMAZON_SES_OPTIONS = { aws_credentials_file => undef, ses_verify_email_address_script => undef, ses_get_stats_script => undef, };
And fill out the necessary information. In this example:
$AMAZON_SES_OPTIONS = { aws_credentials_file => '/home/myaccount/aws-credentials', ses_verify_email_address_script => '/home/myaccount/ses/bin/ses-verify-email-address.pl', ses_get_stats_script => '/home/myaccount/ses/bin/ses-get-stats.pl', };
/home/myaccount
is my home directory, aws-credentials
is the name of the AWS Credentials file
and I copied the, bin
directory from the developer tools download into a directory I created called, ses
.
If you then change into the ses
directory, you should be able to run the scripts. For example:
./ses-verify-email-address.pl -k /home/myaccount/aws-credentials -v me@example.com
and once that email address is verified...
./ses-send-email.pl -k /home/myaccount/aws-credentials -r From: me@example.com To: me@example.com Subject: test to myself! Hello, this is a test to myself!
(control D)
If you run these scripts outside of this directory, you'll more than likely get an error, like this:
Can't locate SES.pm in @INC:
Either follow the directions that come with the README
file of the SES Developer Tools, or, what may be
helpful, is just to add a, use lib qw(...)
line in the ses-send-email.pl
, ses-verify-email-address.pl
and ses-get-stats.pl
scripts themselves. For our examples, we just have to add the directory the scripts are in:
Top of ses-send-email.pl and/or ses-verify-email-address.pl)
#!/usr/bin/perl -w use lib qw(/home/myaccount/ses/bin); # <- now this script can find the, SES.pm module!
Once these steps are taken, Amazon SES should be working on your account and ready to be used within Dada Mail.
In Dada Mail, log into your list control panel and go to:
Mail Sending - Sending Preferences
There should be an option, along with sending via the sendmail command and sending via SMTP, to Send Email Using the Amazon Simple Email Service.
If Dada Mail cannot find your AWS Credentials file, ses-send-email.pl script, ses-verify-email-address.pl script or the ses-get-stats.pl
script
or you're missing any required CPAN modules, it'll notify you. Don't try using sending via this method,
until all these prerequisites are met.
Before you can send any email messages using Amazon SES in Dada Mail, you have to
verify your list owner. Dada Mail has a small frontend utility to the, ses-verify-email-address.pl
script to do this. Under, Amazon SES Tools, right on the Sending Preferences screen, you should see
a little verifier. Enter your List Owner email address and click, Verify Address for Sending.
Once verified, you may use Dada Mail's built-in Sending Preferences Tester to see if Amazon SES sending is working. If it is, congratulations! You're now using Amazon SES to send email out, using Dada Mail. You can further test Amazon SES on a small test list by verifying individual addresses in your subscription list using the same verification utility. To really use Amazon SES for mass mailing, you'll need to request full production access from Amazon.
Here's the overview of Amazon SES SMTP Interface:
http://docs.amazonwebservices.com/ses/latest/DeveloperGuide/SMTP.html
You'll first have to create a SMTP username and password:
http://docs.amazonwebservices.com/ses/latest/DeveloperGuide/SMTP.Credentials.html
and then configure Dada Mail to use these credentials:
Log into your Dada Mail List and go to: Mail Sending - Sending Preferences
Choose, Send Email Using SMTP
For the, SMTP Server:, use, email-smtp.us-east-1.amazonaws.com
For the Port use, 465
Check Use Secure Sockets Layer (SSL)
Check Use SMTP Authentication (SASL)
For Type: use, PLAIN
Fill out the, Username and Password with the username and password provided by Amazon.
Sign in to the AWS Management Console at,
https://console.aws.amazon.com/s3/home
Once at the Amazon AWS Console, click the, Amazon SES tab, click on, Verified Senders and click the button labeled, Verify a New Sender. Enter in your List Owner. You will have to do this for each different List Owner you plan to use.
Once you're done testing Amazon SES, you'll want to request full production access:
http://aws.amazon.com/ses/fullaccessrequest
Without full production access, you'll only be able to send messages to addresses that have manually been verified.
You can use Amazon SES through your existing mail server, as outlined here:
http://docs.amazonwebservices.com/ses/latest/DeveloperGuide/IntegratingWithServer.html
Since you're asking a third party to send email on behalf of you, you'll most likely want to make sure you have a correct SPF Record set up to tell the world that that's OK.
Amazon's doc's have an overview on how to do this,
http://docs.amazonwebservices.com/ses/latest/DeveloperGuide/index.html
http://docs.amazonwebservices.com/ses/latest/DeveloperGuide/index.html?SPF.html
http://docs.amazonwebservices.com/ses/latest/DeveloperGuide/index.html?SenderID.html
http://docs.amazonwebservices.com/ses/latest/DeveloperGuide/index.html?DKIM.html
Probably plenty. Please give feedback using the links, below:
Amazon SES support is currently a little rough and we need feedback on how it's working for you. Please either use the forum/boards:
http://dadamailproject.com/support/boards
Discuss on our dev. list:
http://dadamailproject.com/cgi-bin/dada/mail.cgi/list/dadadev/
And/or file an issue:
http://github.com/justingit/dada-mail/issues
We've seperated out the work we've done with Amazon and using a persistent HTTP connection. That project is located at: