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.
Descrição do serviço em português:
Preço:
1 dolar a cada 10 mil mensagens + o gasto de banda ( $0.12 por GB )
Testes e seus resultados
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.
Resultado do teste de stress, texto plano:
Testes a partir de máquina local, com texto plano:
- 40 envios
- 30.124973058701 seconds
- 0.75312432646751 seconds per message
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.
Testes com envio simultâneo
Usando 20 processos simultâneos, 2000 envios em 1.4 minutos.
- 1428 por minuto.
- 85.680/hora
- 2.056.320/dia
(Desde que exista a permissão Max Send Rate menor que 1 email/second)
Sobre os retornos de erro.
É 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: [email protected]
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
Conclusões
É 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
Alternativas ao Amazon SES:
Exemplo de envio com PHP:
// Instantiate the class
$email
=
new
AmazonSES();
$response
=
$email
->send_email(
'[email protected]'
,
// Source (aka From)
array
(
'ToAddresses'
=>
'[email protected]'
),
// 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());