Les e-mails sont envoyés à votre application en tant que requêtes HTTP. Pour traiter les e-mails entrants, vous devez associer les adresses e-mail aux servlets dans la configuration de votre application, puis inclure le code du servlet dans votre application. L'e-mail entrant génère des requêtes HTTP qui sont transmises aux servlets appropriés en vue de leur traitement.
Configurer votre application pour recevoir des e-mails
Lorsque vous créez une application, le traitement des e-mails entrants est désactivé par défaut. Si vous n'activez pas explicitement cette fonctionnalité dans votre application, les e-mails entrants sont ignorés.
Pour activer le service de messagerie entrante, modifiez les fichiers de configuration appengine-web.xml
et web.xml
:
Activer le traitement des e-mails dans appengine-web.xml
Modifiez appengine-web.xml
en ajoutant une section inbound-services
qui active le service de messagerie entrante :
Les e-mails sont envoyés à votre application en tant que requêtes HTTP POST à l'aide de l'URL suivante :
/_ah/mail/<ADDRESS>
où <ADDRESS>
est une adresse e-mail complète, y compris le nom de domaine. Notez que, même si votre application est déployée sur un domaine personnalisé, vous ne pouvez pas recevoir de messages envoyés aux adresses de ce domaine.
Activer le traitement des e-mails dans le fichier web.xml
Modifiez web.xml
en mappant des URL de messagerie à des servlets:
Dans les extraits ci-dessus, /_ah/mail/*
correspond à tous les e-mails adressés à l'application. Les servlets de messagerie s'exécutent dans la version actuellement diffusée de votre application dans App Engine.
Distribution des messages entrants basée sur un motif
Si votre application utilise un filtrage par motif, vous pouvez envisager d'utiliser une approche basée sur le filtrage, inspirée des extraits de code suivants.
Gestionnaire concret
Le gestionnaire concret ci-dessus est enregistré à l'aide de l'extrait suivant dans web.xml
:
Notez que les instructions security-constraint
ne sont pas possibles sur les filtres. les règles de sécurité du gestionnaire devront être introduites d'une autre manière.
Gestionnaire abstrait
Gérer les e-mails reçus
L'API JavaMail inclut la classe MimeMessage
que vous pouvez utiliser pour analyser les e-mails reçus. MimeMessage
comporte un constructeur qui accepte un objet java.io.InputStream
et une session JavaMail, dont la configuration peut être vide.
Créez une instance MimeMessage
comme suit:
Vous pouvez ensuite employer différentes méthodes pour analyser l'objet message
.
- Appelez
getFrom()
pour renvoyer l'expéditeur du message. - Appelez
getContentType()
pour extraire le type de contenu du message. La méthodegetContent()
renvoie un objet qui implémente l'interfaceMultipart
. - Appelez
getCount()
pour déterminer le nombre d'éléments - Appelez
getBodyPart(int index)
pour renvoyer une partie du corps du message.
Une fois que vous avez configuré votre application pour gérer les e-mails entrants, vous pouvez utiliser la console du serveur de développement pour simuler l'arrivée de courriers. Pour en savoir plus, en particulier sur le lancement du serveur de développement, consultez la section dédiée au Serveur de développement Java. Après avoir démarré votre application sur le serveur de développement local, vous pouvez y accéder au moyen de l’URL http://localhost:8888/_ah/admin/, en remplaçant la valeur 8888 par le port que vous avez choisi (si vous n’utilisez pas le port par défaut du serveur de développement local).
Sur le serveur de développement, cliquez sur Inbound Mail (Courrier entrant) dans la partie gauche, remplissez le formulaire qui s'affiche, puis cliquez sur Send Email (Envoyer un e-mail).