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.
Show de bola hein! 🙂
Pingback: Sending e-mails the efficient way using Amazon SES and CakePHP | Viorel Sfetea
Pingback: Trimite e-mail-uri eficient cu Amazon SES si CakePHP | Viorel Sfetea
Lucas, não consegui encontrar o arquivo config-sample.inc.php. Poderia me ajudar?
Felipe,
Tem dentro desse pacote aqui: http://pear.amazonwebservices.com/get/aws.zip
Você deve baixar e extrair dentro de sua pasta vendors. O arquivo deve ser renomeado para config.inc.php e você deve ajustar com suas credenciais da AWS+SES.
Baixei o pacote mas também não encontrei este arquivo, Lucas. Em que pasta ele fica?
Então Felipe,
Vou disponibilizar um link com a versão que tenho aqui, nessa eu tenho certeza que tem o arquivo que você fala:
https://dl.dropboxusercontent.com/u/42999/temp/aws-sdk.zip
PS.: Acho que essa é uma versão antiga, parece que refizeram todo o SDK de PHP.