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协议,应该是服务器端才需要开入站规则,国内你想自己搭建邮件服务可不容易。 实在搞不懂为啥觉得打开端口就行。