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

Jas*_*per 8 java email smtp web-applications java-ee

我有一个订单管理(Web)应用程序(在Java/Java EE中).

应用程序用户希望从Web应用程序中向发出订单的客户发送接收电子邮件通信.电子邮件路径必须与订单相关联.

用例是:

  1. 用户打开订单明细页面.订单信息 被展示.
  2. 在该页面上 - 点击电子邮件图标,它将显示该订单到目前为止的所有电子邮件通信(已发送/已接收).
  3. 对于该订单 - 您可以查看新收到的邮件,回复邮件或向客户发送新邮件 - 所有这些都与该订单相关.

问题:

  1. 发送电子邮件很简单,但如何在应用程序中接收电子邮件?
  2. 这里的电子邮件帐户是什么 - 一个名为orders@myorg.com的常见电子邮件帐户(基于主题行/某些标题电子邮件被过滤等)或者是orderid@myorg.com(在这种情况下,新的电子邮件帐户创建是按订单要求)还是?
  3. 我们已经有Microsoft Exchange Server,公司电子邮件通过该服务器传输.我们可以在某种程度上利用它,还是我们需要设置一个新的邮件服务器?

欢迎任何想法.

kol*_*sus 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.*'"/>
Run Code Online (Sandbox Code Playgroud)

mail-filter-expression过滤器的方式冲入电子邮件receiveChannel.对于所有感兴趣的各方(频道),您将有一个<int-mail:imap-idle-channel-adapter/>收听您的Exchange服务器.

虽然使用起来并不麻烦,但我建议您根据弹簧EAI 概述简要介绍EAI


Ind*_*ght 3

您需要以下内容。

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