我有一个订单管理(Web)应用程序(在Java / Java EE中)。
应用程序用户希望从Web应用程序中向发出订单的客户发送接收电子邮件通信。电子邮件路径必须与订单相关联。
用例:
问题:
欢迎任何想法。
答案 0 :(得分:5)
如果您愿意接受依赖关系,Spring Integration可以在轮询(POP3,IMAP)或事件驱动的基础上(IMAP-IDLE)轻松地从指定服务器读取电子邮件。 [1& 3] 强>
[2] 您可以使用专用邮件帐户,并根据传入邮件的主题(或其他字段)过滤发送到下游频道的邮件。 Spring网站的以下片段说明了这一点:
<int-mail:imap-idle-channel-adapter id="customAdapter"
store-uri="imaps://some_google_address:${password}@imap.gmail.com/INBOX"
channel="receiveChannel"
should-mark-messages-as-read="true"
java-mail-properties="javaMailProperties"
mail-filter-expression="subject matches '(?i).*Spring Integration.*'"/>
mail-filter-expression
在哪里过滤将被清除receiveChannel
的电子邮件。对于所有感兴趣的人(频道),您将有一个<int-mail:imap-idle-channel-adapter/>
收听您的Exchange服务器。
虽然使用起来并不麻烦,但我建议您查看short overview of EAI according to spring和of EAI in general
答案 1 :(得分:3)
您需要以下内容。
答案 2 :(得分:3)
接收电子邮件 以下是阅读电子邮件Are there any good short code examples that simply read a new gmail message?
此处有电子邮件帐户 为每个用户创建一个电子邮件帐户,并将用户的Web应用程序凭据用作电子邮件的凭据。 使用散列订单ID作为主题的一部分,以将每个电子邮件链与特定订单相关联。
Microsoft Exchange Server 使用exJello是JavaMail提供程序(http://www.exjello.org/) 或者将JavaMail API与DavMail Gateway(http://davmail.sourceforge.net/)
答案 3 :(得分:1)
从用户的角度来看,我认为保留特定主题更加困难。我会建议像myapp.myorg.com这样的子域名或像myapp.com这样的新域名
任何一种方式都可以捕获所有邮件,以便所有邮件都转到特定的电子邮件,例如orders@myapp.myorg.com
然后你的脚本可以检查真正的TO。这可能更自然,更“酷” - &gt;每个订单都有自己的邮件ID!最重要的是使用James或其他邮件软件来交付您的代码。