【发布时间】:2018-03-17 06:13:01
【问题描述】:
我正在使用 Javamail 连接到 AWS 电子邮件服务;我已经测试过我可以使用此代码接收电子邮件,但我还希望获得包含已发送电子邮件数据的响应,例如 AWS 用来唯一标识消息的消息 ID。
我正在使用 MimeMessage 创建一封电子邮件,并在 try catch 块中使用此代码发送它:
transport.sendMessage(message, message.getAllRecipients)
此代码只是向 AWS 服务器发送一封电子邮件,我无法取回任何元数据。有没有办法监听响应以查看消息是否成功,以便我可以检索消息 ID?
【问题讨论】:
-
这不是 SMTP 规范的一部分,所以不 - 服务器不会将该信息发送到发送器。
-
确实如此。您是否检查过此消息元数据是否已返回给发件人?普通的 SMTP 不是很冗长,但据我所知,亚马逊可能有一些扩展。如果是这样,那么 SMTP 协议非常简单,使用 Java 套接字发送消息并不困难。 JavaMail 定义了一个
TransportListener,但我怀疑它会捕获不是 SMTP 中通用内容的数据。 -
是的,发送的电子邮件包含我需要的元数据。谢谢大家,我会考虑使用 AWS 提供的 API 电子邮件替代方案。
-
通常 SMTP 协议对话会包含有关消息 ID 的线索。显然javaee.github.io/javamail/docs/api/com/sun/mail/smtp/… 将允许配置一个记录器,也许可以通过查询来获取消息ID?不知道这些ID有什么用!我(很多年前在 perl 中)编写了一个电子邮件处理系统,试图跟踪所有尝试通过 id 发送的电子邮件。它必须解析日志和各种东西才能使其工作。怀疑你可以在 AWS 上做到这一点
标签: java amazon-web-services email smtp jakarta-mail