Mensagens de e-mail são enviadas para seu aplicativo como solicitações HTTP. Para processar mensagens de e-mail recebidas, você precisa associar endereços de e-mail a servlets na configuração do seu aplicativo e, em seguida, incluir o código do servlet com o aplicativo. O e-mail recebido gera solicitações HTTP que são transmitidas aos servlets apropriados para manipulação.
Como configurar o aplicativo para receber e-mails
Quando você cria um novo aplicativo, a opção de e-mails recebidos fica desativada por padrão. Ative as mensagens de e-mail recebidas pelo seu aplicativo para que não sejam ignoradas.
Para ativar o serviço de e-mail recebido, modifique os arquivos de
configuração appengine-web.xml
e web.xml
:
Como ativar o serviço de e-mail em appengine-web.xml
Modifique appengine-web.xml
adicionando uma seção
inbound-services
que ativa o serviço de e-mail de entrada:
Mensagens de e-mail são enviadas para seu aplicativo como solicitações HTTP POST usando este URL:
/_ah/mail/<ADDRESS>
em que <ADDRESS>
é um endereço de e-mail completo, incluindo o nome do domínio. Mesmo que seu
aplicativo seja implantado em um domínio personalizado, não é
possível receber e-mails enviados para endereços nesse domínio.
Como ativar o serviço de e-mail em web.xml
Modifique web.xml
mapeando URLs de e-mail para servlets:
Nos snippets acima, /_ah/mail/*
corresponde a todos os e-mails endereçados ao aplicativo.
Os servlets de e-mail são executados na versão atualmente em exibição do seu aplicativo no Google App Engine.
Despacho baseado em padrões de mensagens recebidas
Se o aplicativo usa correspondência de padrões, utilize uma abordagem baseada em filtro com base nos snippets de código a seguir.
Gerenciador concreto
O gerenciador de concreto acima é registrado usando o seguinte snippet em
web.xml
:
Observe que as diretivas security-constraint
não são possíveis em
filtros. As políticas de segurança no gerenciador precisarão ser introduzidas de outra forma.
Gerenciador abstrato
Como manipular os e-mails recebidos
A API do JavaMail inclui a classe MimeMessage
que pode ser usada para analisar mensagens
de e-mail recebidas. MimeMessage
tem um construtor que aceita um java.io.InputStream
e uma sessão JavaMail, que pode ter uma configuração vazia.
Crie uma instância MimeMessage
como esta:
Em seguida, é possível usar vários métodos para analisar o objeto message
.
- Chame
getFrom()
para retornar o remetente da mensagem. - Chame
getContentType()
para extrair o tipo de conteúdo da mensagem. O métodogetContent()
retorna um objeto que implementa a interfaceMultipart
. - Chamar
getCount()
para determinar o número de partes - Chame
getBodyPart(int index)
para retornar uma parte específica do corpo.
Depois de configurar seu aplicativo para processar os e-mails recebidos, você pode usar o console do servidor de desenvolvimento para simular mensagens de e-mail recebidas. Para saber mais, incluindo como iniciar o servidor de desenvolvimento, consulte o servidor de desenvolvimento Java. Depois de iniciar o aplicativo no servidor de desenvolvimento local, é possível acessá-lo pelo URL http://localhost:8888/_ah/admin/, substituindo o valor 8888 por qualquer porta usada, caso não seja a padrão.
No servidor de desenvolvimento, clique em "Inbound Mail" no lado esquerdo, preencha o formulário que aparece e clique em "Send Email".