如何在 Java EE 应用程序中接收电子邮件
显然,通过JavaMail从Java EE应用程序发送电子邮件并不困难。我感兴趣的是接收电子邮件的最佳模式(主要是通知退回邮件)?我对基于 IMAP/POP3 的方法(轮询收件箱)不感兴趣 - 我的应用程序应对入站电子邮件做出反应。
我能想到的一种方法是
- 保留现有的MTA(在我的情况下,linux上的后缀) - >运维团队已经知道如何配置/操作它
- 对于到达的每封邮件,生成一个 Java 应用程序,该应用程序接收数据并通过 JMS 将其发送出去。我可以通过/etc/aliases中的条目来做到这一点,就像javahelper调用Java应用程序一样,传递STDIN。
myuser: "|/path/to/javahelper"
- MDB(Java EE 应用程序的一部分)接收 JMS 消息,对其进行解析,检测退回消息并采取相应的操作。
另一种方法可能是
- 在 Java EE 应用程序容器上的端口 25 上打开侦听网络套接字。
- 将会话 Bean 与套接字关联。Bean 是 Java EE 应用程序的一部分,可以直接解析/检测退回邮件/处理消息。
- 将现有 MTA 保留为入站中继,执行其所有安全/垃圾邮件过滤,但将电子邮件转发到(传递过滤器)到 Java EE 应用程序容器端口 25。
myuser
我以前做过的第一种方法(尽管使用不同的语言/设置)。
从性能和(感知到的)清洁度的角度来看,我认为第二种方法更好,但它需要我提供适当的SMTP传输实现。另外,我不知道是否有可能将网络套接字与豆子连接...
您的建议是什么?你有关于第二种方法的细节吗?