As mensagens de email são enviadas para a sua app como pedidos HTTP. Para processar mensagens de email recebidas, tem de associar endereços de email a servlets na configuração da aplicação e, em seguida, incluir o código do servlet na sua app. O email recebido gera pedidos HTTP que são transmitidos aos servlets adequados para processamento.
Configurar a sua aplicação para receber emails
Quando cria uma nova aplicação, o email recebido está desativado por predefinição. Se não ativar explicitamente, as mensagens de email recebidas enviadas para a sua app são ignoradas.
Para ativar o serviço de email recebido, modifique os ficheiros de configuração appengine-web.xml
e web.xml
:
Ativar o email em appengine-web.xml
Modifique appengine-web.xml
adicionando uma secção inbound-services
que
ativa o serviço de email recebido:
As mensagens de email são enviadas para a sua app como pedidos HTTP POST através do seguinte URL:
/_ah/mail/<ADDRESS>
em que <ADDRESS>
é um endereço de email completo, incluindo o nome de domínio. Tenha em atenção que, mesmo que a sua app esteja implementada num domínio personalizado, não pode receber emails enviados para endereços nesse domínio.
Ativar email em web.xml
Modifique web.xml
mapeando URLs de email para servlets:
Nos fragmentos acima, /_ah/mail/*
corresponde a todos os emails enviados para a app.
Os servlets de correio são executados na versão atualmente publicada da sua app no App Engine.
Encaminhamento de mensagens recebidas com base em padrões
Se a sua app usar a correspondência de padrões, considere usar uma abordagem baseada em filtros com base nos seguintes fragmentos de código.
Manipulador de betão
O controlador concreto acima é registado através do seguinte fragmento no ficheiro
web.xml
:
Tenha em atenção que as diretivas security-constraint
não são possíveis em filtros. As políticas de segurança no controlador têm de ser introduzidas de outra forma.
Abstract handler
Processamento de emails recebidos
A API JavaMail inclui a classe MimeMessage
, que pode usar para analisar mensagens de email recebidas. MimeMessage
tem um construtor que aceita um java.io.InputStream
e uma sessão do JavaMail, que pode ter uma configuração vazia.
Crie uma instância MimeMessage
como esta:
Em seguida, pode usar vários métodos para analisar o objeto message
:
- Chame
getFrom()
para devolver o remetente da mensagem. - Chame
getContentType()
para extrair o tipo de conteúdo da mensagem. O métodogetContent()
devolve um objeto que implementa a interfaceMultipart
. - Ligue para
getCount()
para determinar o número de peças - Diga
getBodyPart(int index)
para devolver uma parte específica do corpo.
Depois de configurar a sua app para processar emails recebidos, pode usar a consola do servidor de desenvolvimento para simular mensagens de email recebidas. Para saber mais, incluindo como iniciar o servidor de desenvolvimento, consulte o artigo O servidor de desenvolvimento em Java. Depois de iniciar a aplicação no servidor de desenvolvimento local, pode aceder à aplicação visitando o URL http://localhost:8888/_ah/admin/, substituindo o valor 8888 pela porta que estiver a usar se não usar a porta predefinida para o servidor de desenvolvimento local.
No servidor de desenvolvimento, clique em Correio recebido no lado esquerdo, preencha o formulário apresentado e clique em Enviar email.