有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在Web应用程序中发送/接收电子邮件?

我有一个订单管理(Web)应用程序(Java/JavaEE)

应用程序用户希望通过Web应用程序向下订单的客户发送接收电子邮件通信。电子邮件跟踪必须与订单关联

用例是

  1. 用户打开订单详细信息页面。订单信息。显示
  2. 在该页面上-单击电子邮件图标,它将显示截止日期之前该订单的所有电子邮件通信(发送/接收)
  3. 对于该订单-您可以查看新的传入邮件、回复邮件或向客户发送新邮件-所有这些都与该订单相关

问题:

  1. 发送电子邮件很容易,但如何在应用程序中接收电子邮件
  2. 这里的电子邮件帐户是什么-一个叫做orders@myorg.com(并根据主题行/一些邮件标题进行过滤等)还是orderid@myorg.com(在这种情况下,每个订单都需要创建新的电子邮件帐户)或
  3. 我们已经有了Microsoft Exchange Server,公司的电子邮件可以通过它传送。我们能否以某种方式利用这一点,或者我们是否需要设置一个新的邮件服务器

欢迎提出任何意见


共 (4) 个答案

  1. # 1 楼答案

    从用户的角度来看,我认为保留一个特定的主题更难。我建议使用一个类似myapp的子域。迈尔格。com或像myapp这样的新域。com

    任何一种方式都有一个通俗易懂的功能,这样所有邮件都可以发送到特定的电子邮件,如orders@myapp.myorg.com

    然后你的脚本可以检查真实的目标。这可能更自然、更“酷”——>;每个订单都有自己的邮件id!除此之外,还可以使用James或其他邮件软件来传递代码

  2. # 2 楼答案

    如果您愿意接受依赖关系,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 springof EAI in general

  3. # 3 楼答案

    您需要以下内容

    1. Java Mail API,通过某些exchange服务器以编程方式发送电子邮件
    2. 我建议使用专用的电子邮件服务器来接收特定于应用程序的电子邮件。您可以使用James来实现这一点。你可以通过这个软件收发电子邮件
    3. 如果使用现有的Microsoft Exchange Server,则始终可以使用重定向到特定于应用程序的电子邮件服务器
  4. # 4 楼答案

    1. 接收电子邮件 下面是阅读电子邮件的示例代码Are there any good short code examples that simply read a new gmail message?

    2. 这里的电子邮件帐户 为每个用户创建一个电子邮件帐户,并将用户的web应用凭据用作电子邮件凭据。 使用散列的订单id作为主题的一部分,将每个电子邮件链与特定的订单关联起来

    3. Microsoft Exchange服务器 使用exJello或JavaMail提供程序(http://www.exjello.org/) 或者将JavaMail API与DavMail网关(http://davmail.sourceforge.net/)结合使用。