java在Web应用程序中发送/接收电子邮件?
我有一个订单管理(Web)应用程序(Java/JavaEE)
应用程序用户希望通过Web应用程序向下订单的客户发送接收电子邮件通信。电子邮件跟踪必须与订单关联
用例是:
- 用户打开订单详细信息页面。订单信息。显示
- 在该页面上-单击电子邮件图标,它将显示截止日期之前该订单的所有电子邮件通信(发送/接收)
- 对于该订单-您可以查看新的传入邮件、回复邮件或向客户发送新邮件-所有这些都与该订单相关李>
问题:
- 发送电子邮件很容易,但如何在应用程序中接收电子邮件
- 这里的电子邮件帐户是什么-一个叫做orders@myorg.com(并根据主题行/一些邮件标题进行过滤等)还是orderid@myorg.com(在这种情况下,每个订单都需要创建新的电子邮件帐户)或
- 我们已经有了Microsoft Exchange Server,公司的电子邮件可以通过它传送。我们能否以某种方式利用这一点,或者我们是否需要设置一个新的邮件服务器李>
欢迎提出任何意见
# 1 楼答案
从用户的角度来看,我认为保留一个特定的主题更难。我建议使用一个类似myapp的子域。迈尔格。com或像myapp这样的新域。com
任何一种方式都有一个通俗易懂的功能,这样所有邮件都可以发送到特定的电子邮件,如orders@myapp.myorg.com
然后你的脚本可以检查真实的目标。这可能更自然、更“酷”——>;每个订单都有自己的邮件id!除此之外,还可以使用James或其他邮件软件来传递代码
# 2 楼答案
如果您愿意接受依赖关系,Spring Integration可以通过轮询(POP3,IMAP)或事件驱动(IMAP-IDLE)轻松地从指定服务器读取电子邮件[1和3]
[2]您可以使用专用电子邮件帐户,并根据收到邮件的主题(或其他字段)过滤发送到下游渠道的邮件。Spring站点的以下代码片段说明了这一点:
其中
mail-filter-expression
过滤将被刷新的电子邮件receiveChannel
。对于所有感兴趣的方(频道),您将有一个<int-mail:imap-idle-channel-adapter/>
正在侦听Exchange服务器虽然使用起来并不麻烦,但我建议您查看short overview of EAI according to spring和of EAI in general
# 3 楼答案
您需要以下内容
# 4 楼答案
接收电子邮件 下面是阅读电子邮件的示例代码Are there any good short code examples that simply read a new gmail message?
这里的电子邮件帐户 为每个用户创建一个电子邮件帐户,并将用户的web应用凭据用作电子邮件凭据。 使用散列的订单id作为主题的一部分,将每个电子邮件链与特定的订单关联起来
Microsoft Exchange服务器 使用exJello或JavaMail提供程序(http://www.exjello.org/) 或者将JavaMail API与DavMail网关(http://davmail.sourceforge.net/)结合使用。