O serviço Amazon SES cuida da entrega de mensagens, fazendo o papel de MTA.
Pelo que pesquisei, a MailChimp passou a usar este serviço para entrega.
A maior vantagem é a escala.
O serviço possui limites que são aumentados periodicamente.
No Blog Email Marketing Vodoo há o relato do aumento limite para 1 milhão por dia, em um mês de uso.
1 dolar a cada 10 mil mensagens + o gasto de banda ( $0.12 por GB )
Os testes foram feitos usando a SDK da Amazon para PHP e executados a partir de uma máquina em rede simples. Naturalmente em um envio real, a rede será mais rápida, porém com envio maior de informações.
Testes a partir de máquina local, com texto plano:
Com envio a partir de uma máquina dentro do datacenter diminuiremos o tempo de rede porém aumentaremos a quantidade de informação do POST, o que deve permanecer nestes 4800 envios por hora, por processo.
Podemos abrir N processos por máquina, 115.200 envios/dia por processo.
Usando 20 processos simultâneos, 2000 envios em 1.4 minutos.
(Desde que exista a permissão Max Send Rate menor que 1 email/second)
É informado se o email foi entregue com sucesso, mas não indica a qualidade da entrega. Não nos listam quais foram estes emails com sucesso.
As falhas são entregues por email, a partir de endereços específicos, como o bounce: MAILER-DAEMON@email-bounces.amazonses.com
Isto é ruim pois eu esperava poder recolher isso via API. Continua sendo necessário processar os retornos a partir de mensagens de email, e não a partir de uma inteligência da Amazon, semelhante ao serviço já prestado no Amazon SQS.
O relatório nos entrega apenas os números finais, o que é uma pena.
Discussões sobre esta necessidade, no Fórum
É um serviço muito bom, porém 3 vezes mais caro que a entrega a partir de um MTA próprio, sem grandes vantagens imediatas que justifiquem a migração, para aplicativos que já estão estáveis com o envio simples por MTA.
Se ainda não está implantando o know how sobre a entrega por MTA, aí sim é um ótima escolha, por não precisar de manutenção em um servidor de email próprio
Exemplo de envio com PHP:
// Instantiate the class$email = new AmazonSES();
$response = $email->send_email( 'no-reply@amazon.com', // Source (aka From) array('ToAddresses' => 'nobody@amazon.com'), // Destination (aka To) array( // Message (short form) 'Subject.Data' => 'Email Test ' . time(), 'Body.Text.Data' => 'This is a simple test message ' . time() ));
// Success?var_dump($response->isOK());