Como receber email usando o Amazon SES

18

Sou novo no Amazon Web Services (AWS) e no AWS Simple Email Service (SES).

O AWS SES permite que um aplicativo receba emails? Não foi possível encontrar uma referência no guia do desenvolvedor do SES.

Meu aplicativo exige que os e-mails recebidos de um cliente sejam identificados por cliente e, eventualmente, eles serão armazenados em um banco de dados (programaticamente). Todo cliente terá um email no domínio que hospeda o aplicativo.

Por exemplo, digamos que o aplicativo esteja hospedado www.example.comna AWS. Em seguida, os clientes deste myapp pode ter e-mails como: [email protected], [email protected], [email protected]assim.

Se isso não for possível no AWS SES, sugira alternativas (para email de alto volume) sobre como isso pode ser feito no ambiente da AWS?

java_pill
fonte
Esperar. Você está falando sobre enviar ou receber?
mailq

Respostas:

9

O SES da Amazon é estritamente para o envio de email. Para receber um e-mail, é necessário configurar um MTA (agente de transporte de correio), como Sendmail, Postfix, Qmail, etc, em uma instância do servidor EC2 e apontar seus registros MX DNS para essa instância. Nesse caso, você provavelmente também precisará utilizar um IP elástico (EIP) para ter um IP estático. Sem mencionar que você pode encontrar o intervalo de endereços IP bloqueado potencialmente por determinados DNSBLs.

Costumo abster-me de receber e-mails na AWS e ter servidores de correio externos em servidores dedicados ou localizados co-localizados ou VPS, pois eles tendem a ser mais baratos e menos onerosos.

Jeremy Bouse
fonte
22
Isso não é mais verdade. A nova atualização do Amazon SES vem com a adição de regras de recebimento, que permitem armazenar e-mails de várias maneiras diferentes.
usar o seguinte código
11
Ainda é verdade, aws.amazon.com/ses (leia as duas primeiras linhas), embora o SES tenha a capacidade de receber o email usando regras de recebimento, ele não pode ser designado como a caixa de correio pessoal ou tradicional.
Adnan
41

Hoje é o seu grande dia! O AWS SES lançou agora o recebimento de emails: https://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email.html

Observe que isso não foi projetado para ser usado como caixa de correio pessoal. A configuração atual cria uma plataforma perfeita para o recebimento automático de e-mails. Perfeito para o processo automatizado de qualquer relatório gerado (como mensagens bancárias, relatórios DMARC, faturas eletrônicas etc.)

Por exemplo, aqui está a mensagem como foi salva no S3: https://s3-eu-west-1.amazonaws.com/s3.jakub-boucek.cz/temp/lts0ahe3tucqpoii4ji0g0u3u08nrpuk1g0p3bo1 e isso é resultado da notificação entregue ao meu endpoint https : http://pastebin.com/yR3RjjkE

JakubBoucek
fonte
11
Excelente descoberta, Jakub. Eu ainda não tinha visto o anúncio sobre isso ainda.
EEAA
11
Achei complexo configurar o SES. Alguém já identificou um tutorial simplista? O Gmail pode ser configurado como um cliente para o serviço?
BLONG
Oi @blong sim, o SES é muito complexo. Não é possível criar o Gmail (ou outro provedor) como "cliente" para isso. Esta não é a caixa de entrada clássica, o SES é o processador da máquina para mensagens de entrada. Você pode usar o SES para redirecionar emails para o Gmail. Mas também não é simples. Consulte o projeto do AWS Lambda SES Email Forwarder .
JakubBoucek
Olá @JakubBoucek, obrigado por responder às minhas perguntas. Parece que vou precisar encontrar outra abordagem. Aqui está algo que eu possa considerar: simplyian.com/2015/01/07/...
BLONG
11
@ limasxgoesto0 Use qualquer analisador MIME, como um: github.com/nodemailer/mailparser
JakubBoucek
3

Atualização: depois de postar esta resposta, a Amazon adicionou suporte para receber email por meio do SES. Ele foi projetado para processamento automatizado e não pode ser usado como uma caixa de correio IMAP típica. Consulte https://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email.html para obter detalhes.

Desatualizado :

O Amazon SES é apenas para enviar email.

(Fonte: http://aws.amazon.com/ses/ )

O Amazon Simple Email Service (Amazon SES) é um serviço de envio de emails em massa e transacional altamente escalável e econômico para empresas e desenvolvedores.

Receber e-mail não é tão difícil. Definitivamente mais fácil do que enviar e-mail, com todos os seus obstáculos anti-spam. Que tal configurar um servidor Postfix com usuários virtuais? Em que tipo de volume você está pensando?

Martijn Heemels
fonte
2
Se você votou negativamente, agradeceria um comentário sobre o motivo. No momento em que essa resposta foi escrita (há 4 anos), certamente não estava errado.
Martijn Heemels
... você está certo, a resposta não estava errada no momento em que foi postada. Mas hoje, a informação está incorreta. Portanto, um voto negativo não é sobre você, é sobre a informação. Você pode considerar uma edição ou atualização com informações corretas. (apenas uma sugestão)
agentv
2

O Amazon SES é apenas para envio e nunca recebe e-mails (apenas devolve).

Você precisa verificar o endereço de email do remetente para ser válido. Qual será o endereço de e-mail que depende de você. Você pode ter Freemail-Accounts, uma conta no seu servidor de email no EC2, uma conta no seu servidor de email na sua empresa ou qualquer outra conta de email que você possua. Mas deve ser seu.

mailq
fonte
0

A melhor abordagem que encontrei é instalar o servidor de email 'dovecot' localmente. Ajuste-o para ouvir no 127.0.0.1 e no Maildir:

listen = 127.0.0.1
# mail_location = mbox:~/mail:INBOX=/var/mail/%u # Comment this and add next:
mail_location = maildir:~/Maildir

Depois instale s3fs

sudo apt install s3fs
sudo echo "s3fs#mailbox-konkove /home/kes/Maildir/new fuse _netdev,allow_other,profile=mail,uid=1000,gid=1000,use_cache=/tmp/S3,defaults,noatime,endpoint=eu-west-1 0 0" >> /etc/fstab

configurar a AWS CLI

E configure seu cliente de e-mail para receber e-mails ~/Maildirvia protocolo IMAP

Eugen Konkov
fonte