Java 实现发送邮件, 我遇到了哪些问题?

in 工作记录 with 0 comment

参考了:

邮件发送的基础 Jar 依赖的选择

javax.mail 这个包呢,搜出的贴子基本都是 1.4.7 这个版本,实际上应该使用最新 1.6.2,这绝对没有坏处。

1.4.7 基于不同的操作系统和 JDK 版本,表现出了大量的:

"No appropriate protocol (protocol is disabled or cipher suites are inappropriate)"

大家给出的解决方案五花八门,我优先选择的使用最新的版本 1.6.2 解决的。

Maven坐标

<dependency>
    <groupId>com.sun.mail</groupId>
    <artifactId>javax.mail</artifactId>
    <version>1.6.2</version>
</dependency>

groupId 也是有两个 javax.mail 和 com.sun.mail

我使用的是中央仓库搜出来的地址,具体可以看这里

https://mvnrepository.com/artifact/com.sun.mail/javax.mail/1.6.2

邮件发送的一些注意点

发送邮件用的是SMTP协议。

邮箱服务器(比如网易邮箱,Outlook)的地址、端口、邮箱、密码、加密方式这些信息需要自行获取。

发件人昵称是如何配置的?

from 字段应该这样写(遵循 RFC-822 标准):

String from = "Nickname<yourEmail@xx.com>";

邮件发送需要放行 25 或 465 端口入站规则吗?

调试的时候搜到不少帖服务器上发送失败,解决 BUG 方案是开放端口,我觉得就是扯蛋,只是发送个邮件而已,发送邮箱走的 Socket 协议,应该是服务器端才需要开入站规则,国内你想自己搭建邮件服务可不容易。 实在搞不懂为啥觉得打开端口就行。