Páginas

13 de ago de 2012

Amazon SES ( Simple Email Service )


Continuando com os serviços da Amazon, vou abordar um tema que deve ser um dos pontos de grande interesse para qualquer empresa. O envio de e-mail. Para algumas este assunto é mais importante que para outras, seja qual for o nível de relevância para o modelo de negócio da empresa, e-mail sempre é um assunto complexo e que irrita desenvolvedores e empresas há bastante tempo.

Existem várias formas de enviar emails. Criar uma estrutura de envio própria, instalar e licenciar um serviço de email terceirizado, contratar um serviço de envio especializado. Todos têm seus problemas, sendo um deles, o alto custo. Além disso todos sofrem do mesmo problema, o spam. Regras de palavras, imagens, título, do que pode-se ter no conteúdo e o que não. Todos esses problemas são comuns a qualquer tipo de sistema que enviará emails através da internet. Enviar emails com a certeza que terão 100% de taxa de entrega é uma utopia. Existem métodos, dicas e muitos artigos com dicas sobre. Recomendo esse link com bastante material, em inglês.

Após toda essa explicação, então, porque o Amazon SES?

O Simple Email Service ( Serviço de Email Simples, em tradução livre ) não é somente um serviço, mas sim, uma infraestrutura completa e projetada para o envio otimizado de emails. Atualmente é esse serviço que a própria Amazon utiliza para envio de email de todos os seus serviços, conhecidos e utilizados mundialmente. Essa infraestrutura, segue todos os padrões ISPs com o adicional de existir, com qualidade, há muito tempo no mercado.

Como desenvolvedor, o que muito chamou minha atenção foi o modelo de envio do SES. Fazendo uma chamada à API ou enviando diretamente para o endereço de SMTP do SES você está apto para enviar emails pelo SES, porém, o processo não termina nisso. Após um email ser enviado, a infraestrutura do SES digitaliza esse email e o submete a testes e filtros de spam. Caso o email passe em todos os testes, este será enfileirado para envio, caso contrário, o email, com uma mensagem de erro, será enviado para o Return-Path configurado para devidas correções. A grosso modo, a Amazon não vai se comprometer e enviar um email fora dos padrões, arriscando sua reputação e anos no mercado. (Então, caro spammer, essa não é pra você ¬¬ ).

Dentre os dois modos, escolhi utilizar a API fornecida pela Amazon. Seja por ter considerado-a mais simples e segura, seja por acreditar em um melhor desempenho com a mesma. Após criar uma conta na AWS é criado uma chave e uma chave secreta para utilização da API. Essa API contempla praticamente todos os serviços oferecidos pelo Web Services Amazon. Não está no escopo desse artigo percorrer todas as APIs, vamos nos concentrar no SES, por agora.

Criando o awsSesMailer


A amazon possui uma ótima API com documentação extensa, porém com pequena base de desenvolvimento brasileira ou em português. Sendo assim, decidi criar uma ponte, uma maneira a qual os desenvolvedores estejam mais acostumados. Motivos para tal, são claros. Seja a facilidade de uso, a menor curva de aprendizado e tempo de implantação, assim como, manutenção por outros desenvolvedores que não tiveram introdução e estudo da API completa do SES.

O awsSesMailer é uma classe PHP que extende o SDK disponibilizado pela Amazon na linguagem PHP. A utilização dessa classe é muito simples. O desenvolvedor que já utilizou o conhecido phpMailer encontrará métodos praticamente iguais, em nome como utilização.

A documentação está sendo criada, assim como a classe. Qualquer ajuda é muito bem vinda!

https://github.com/marcosbrasil/awsSesMailer

API e SKD da Amazon para PHP


Quem ficou interessado em conhecer todas as possibilidades do SKD disponibilizado pela Amazon, que abrange não somente o SES mas todos os outros serviços agraciados com a possibilidade de uso via API, segue alguns links bem úteis.

README completo do SDK pela própria Amazon

Repositório oficial da Amazon no github


Leia no Google Drive!

Um comentário: