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

标签 java email jakarta-ee web-applications smtp

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

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

用例是:

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

问题:

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

欢迎提出任何想法。

最佳答案

如果你愿意承担依赖,Spring Integration可以在轮询(POP3、IMAP)或事件驱动(IMAP-IDLE)的基础上轻松地从指定服务器读取电子邮件。 [1 & 3]

[2] 您可以使用专用邮件帐户并根据传入邮件的主题(或其他字段)过滤发送到下游 channel 的邮件。以下来自 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 .对于所有感兴趣的各方( channel ),您将拥有一个 <int-mail:imap-idle-channel-adapter/>收听您的 Exchange 服务器。

虽然使用起来并不麻烦,但我还是建议您查看 short overview of EAI according to springof EAI in general

关于java - 从 Web 应用程序中发送/接收电子邮件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16122065/

相关文章:

java - 如何在 dsp :switch tags 中获得失败/逻辑或

jakarta-ee - 传统 Java EE 服务器内的 OSGI 运行时

java - 当 retainall 用于 java 中的两个键集时不可修改的集合问题

java - InetAddress.getAllByName() 只接收带有 java.net.preferIPv6Addresses 的 IPv4 地址

php - 隐藏或不打印来自服务器的消息

email - SPF=通过 Gmail 中性发送

java - 对所有 JPA 查询进行分页

Java Android 增强现实应用图像坐标

Array对象数据的Java、ErroMax和Min?

javascript - 正则表达式中连字符的这种用法有效吗?