Évidemment, il n'est pas si difficile d'envoyer des e-mails depuis une application Java EE via JavaMail. Ce qui m'intéresse est le meilleur modèle pour recevoir emails (les rebonds de notification, la plupart du temps)? Je ne suis pas intéressé par les approches IMAP/POP3 (interroger la boîte de réception) - mon application doit réagir aux e-mails entrants.Comment recevoir des e-mails dans une application Java EE
Une approche que je pouvais penser serait
- Conserver MTA existant (Postfix linux dans mon cas) - équipe> ops sait déjà comment configurer/faire fonctionner
- Pour chaque courrier qui arrive, générer une application Java qui reçoit les données et l'envoie via JMS. Je pourrais faire cela via une entrée dans/etc/aliases comme
myuser: "|/path/to/javahelper"
avec javahelper appelant l'application Java, en passant STDIN le long. - MDB (partie de l'application Java EE) reçoit le message JMS, l'analyse, détecte le message de rebond et agit en conséquence.
Une autre approche pourrait être
- Ouvrez une prise réseau d'écoute sur le port 25 sur le conteneur d'applications Java EE.
- Associez un SessionBean au socket. Bean fait partie de l'application Java EE et peut analyser/détecter les bounces/gérer les messages directement.
- Conserver MTA existant comme relais entrant, faire tout son filtrage de sécurité/spam, mais des e-mails avant de
myuser
(qui passent le filtre) au conteneur d'applications Java EE, le port 25.
La première approche que je fait avant (bien que dans une langue/configuration différente). Du point de vue de la performance et du point de vue de la propreté (perçue), je pense que la deuxième approche est meilleure, mais cela nécessiterait que je fournisse une implémentation de transport SMTP appropriée. Aussi, je ne sais pas s'il est possible de connecter un socket réseau avec un bean ...
Quelle est votre recommandation? Avez-vous des détails sur la deuxième approche?
Quelle approche avez-vous finalement choisi? – Theo
Le projet a été sur une backburner pendant un certain temps. En ce moment, je travaille à nouveau sur ce sujet, mais je n'ai pas encore implémenté la partie réceptrice. Jusqu'à présent, mon plan est de suivre la suggestion de sleske et de scanner une boîte mail à intervalles réguliers via IMAP. – Hank
Débarrassez-vous du jms dans l'op 1 et envoyez-le simplement via curl/http spawned à un endpoint de repos et vous pouvez couper un morceau (JMS/MDB) de conf/complexité sur. – alphazero