gpt4 book ai didi

java - 从 java 代码发送邮件 - 可靠的方式

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:08:31 25 4
gpt4 key购买 nike

必须从您的应用程序发送邮件是一件很常见的事情,在大多数情况下,这真的很痛苦......你知道在哪里。

所以我正在做的是使用 Apache Commons Email(它基于“官方”java 邮件 api 之上)并且我正在以最简单的方式发送电子邮件,即没有对 smtp 进行身份验证服务器。我只是在目标主机名上做一个简单的 MX 查找,获取 MX 服务器并尝试在第一个服务器上丢弃我的消息(邮件是否被拒绝是一个完全不同的问题,我可能很快会问一个关于return-path: vs. from: vs. reply-to: 以及这些 header 在 java 中(不)处理的方式)。回到正题...所以我只是尝试将我的消息放在偏好分数最低的邮件服务器上。

这是一个例子:我想写信给recipient@domain.com。 MX Lookup 告诉我 domain.com 知道两个 MX 服务器,例如mail1.domain.com 优先级为 10,mail2.domain.com 优先级为 20。rfc 方法是转到具有最低优先级的服务器并丢弃那里的邮件。这就是我所做的。

最后是我的问题:如果该服务器以某种方式不可用怎么办?这很简单——我去了另一台服务器,但 Apache Commons(我怀疑是 java mail api)不允许我这样做。 mail.smtp.host 变量 Root 于电子邮件消息中 session 的属性中。我无法理解它。

那么处理这个问题的最佳方法是什么?我应该使用新的主机名 (mail2) 从头开始​​完全构建我的电子邮件,还是有一些聪明的方法可以让这一切在 java 中轻松工作?

最佳答案

如果您正在尝试实现部分邮件服务器,而不仅仅是发送电子邮件,这听起来不错。路由、中继、缓存和投递重试是所有邮件服务器实现和提供的操作,通常不会由邮件客户端完成。

你应该做的是要么使用一个(一个!)现有的邮件服务器,它被配置为允许中继出站邮件,或者如果你无权访问这样的服务器(我怀疑),设置和操作你自己的服务器。然后,您在 mail.smtp.host 中配置 服务器,并忘记您所了解的有关 DNS 查找、服务器优先级以及您担心如果没有 MX 该怎么办的担忧服务器可访问。

关于java - 从 java 代码发送邮件 - 可靠的方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17542856/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com