|
|
1
8
我不认为第二种方法是“更干净”。相反,它要求您实现标准mta的重要部分,因此我建议您不要这样做。 我相信轮询pop/imap服务器实际上是最干净的方法。你为什么决定反对?如果pop/imap服务器和您的服务位于同一个lan(甚至在同一台机器上),那么轮询将非常便宜。你可以每10-20秒做一次,这样就不会造成问题。虽然这在技术上看起来有点不雅观,但您将使用标准互操作协议(pop3/imap),该协议为您提供灵活性,同时避免重新实现邮件服务器。 产生Java应用程序的方法似乎也可行,但我更喜欢轮询,因为: a)您使用的接口(POP3/IMAP)更加标准化,而您用于“插入”邮件服务器的接口将是特定于服务器的(在UNIX上,您可以使用ProcMail,但您仍然依赖于特定的软件) b)为每封邮件启动一个单独的进程可能比轮询有更多的开销。 顺便说一下:第三种方法是以某种方式将传入的邮件作为文件转储到“传入”目录(许多邮件服务器可以这样做),然后轮询该目录。轮询目录比轮询服务器要便宜得多。注意同步问题(读半写的邮件,读同一邮件文件的几个并发读卡器…) 我的经验: 我使用这两种方法实现了系统(imap轮询和生成单独的进程)。轮询是一个相当大的Java应用程序,它处理人们发送给邮箱的数据;我没有遇到任何问题WRT轮询。生成方法是针对一个小的Perl脚本;我之所以这样做是因为它是一个简单的程序,每天只处理几封邮件,而且插入MailServer比用Perl执行IMAP要容易。 |
|
|
2
7
根据JavaEE体系结构的“正确”方式是使用JCA连接器来完成与SMTP服务器的入站/出站连接。 jca连接器可以做任何您想要的事情,包括线程和使用套接字连接到外部系统。实际上,jms只是一种特殊的jca连接器,它连接到jms代理并将消息传递到“常规”mdb。然后,jca连接器可以轮询smtp服务器并将消息传递到自定义mdb。 关于jca最好的文档是 Creating Resource Adapters with J2EE Connector Architecture 1.5 ,它确实使用了电子邮件传递的示例。祝你好运:)我建议你看看。代码可以作为JavaEE示例的一部分被找到,并使用JavaMail,但我不知道它是否已经准备好了。 相关: |
|
|
3
4
也许 SubEtha SMTP [编辑:现在从google代码重新定位到 GitHub ] 将是有趣的——它是一个Java库,允许您的应用程序接收SMTP邮件。我要试一试。
这里有一个相关的堆栈溢出问题(有人建议使用subethasmp):
|
|
|
4
3
阿帕奇·詹姆斯呢? 它实现了所有的堆栈,并允许您使用类似于servlet的方法对收到的邮件做出反应;它是开源的,完全由apache许可(因此可以在商业产品中使用),并且已经经过多年的测试。 |
|
|
5
2
使用 ESB -独立的或嵌入的。 “esb将与流相关的概念(如转换和路由)引入到面向服务的体系结构中。esb还可以为端点提供抽象。这提高了传输层的灵活性,并使服务之间的松散耦合和轻松连接成为可能。” 例如 骡子 “mule esb是使用最广泛的开源esb。Mule ESB是一个轻量级集成平台和服务容器,它为Web服务、消息路由、中介、转换和事务管理提供了功能,帮助开发人员在数小时内而不是数周内集成其应用程序。” 下面是一个简单的配置,它发送jms消息作为对接收到的消息的响应(这是您所需要的全部)-定义入站(imap/pop3/etc)-定义出站。
|
|
|
Yoko · 试图用Javascript在表格中发送多个PDF块 1 年前 |
|
|
Shane Brodie · 生成的电子邮件中出现奇怪的字符 1 年前 |
|
Martin · 后端JavaScript文件EmailJS发送错误 1 年前 |
|
Majoris · Django无法发送电子邮件,即使conf是正确的 2 年前 |
|
|
HarriS · MS Graph API:在查询中使用包含运算符 2 年前 |