Há algum tempo a Amazon lançou um serviço muito interessante relacionado ao envio de e-mail em grande escala com um custo bem baixo. Este serviço chamado Amazon SES fornece uma boa API para envio de e-mails.
Um dos frameworks que mais utilizo em minha rotina de trabalho é o CakePHP, um ótimo framework MVC escrito em PHP.
O CakePHP possui um componente para envio de e-mails sobre a função mail do PHP ou por SMTP.
Como estava querendo testar o serviço da AWS de envio de e-mails resolvi criar uma solução compatível com o CakePHP.
Criei um novo componente que estende o EmailComponent chamado EmailServiceComponent para ter as habilidades de operar com o Amazon SES.
O código fonte deste componente pode ser baixado no projeto que crie no GitHub, clicando aqui.
Como utilizar:
Primeiro devemos baixar o Amazon SDK PHP, neste link.
Descompacte o arquivo na pasta vendors de sua aplicação, e renomeie a pasta principal da SDK para aws-sdk.
Logo após renomeie o arquivo config-sample.inc.php para config.inc.php e insira suas credenciais de acesso nele.
Uma vez a SDK estando configurada e devidamente colocada em seu projeto, baixe o EmailServiceComponent disponível aqui e coloque em sua pasta controllers/components.
Quando for necessário enviar um e-mail usando o Amazon SES basta carregar o componente no controller:
var $components = array('EmailService');
E habilitar o aws_ses como função padrão para envio de e-mails:
$this->EmailService->delivery = 'aws_ses'; // ou 'aws_ses_raw' se você desejar enviar um e-mail complexo ou com anexos...
Depois disso é só seguir o procedimento padrão de envio de e-mails do Cake, só lembrando de sempre usar EmailService ao invés de Email.
Se tiverem dúvidas deixem no espaço de comentários deste post.