Java使用JavaMail进行邮件的发送和读取
参考文章
-
基于JavaMail的Java邮件发送:简单邮件发送
-
基于JavaMail的Java邮件发送:复杂邮件发送
-
用java读取邮箱邮件
补充说明
-
iphone手机绑定qq邮箱及开启SMTP服务验证
见:
../../一些软件小技巧/软件小技巧.md -
qq邮箱的SMTP服务器
QQ邮箱 POP3 和 SMTP 服务器地址设置如下:
邮箱:qq.com
POP3服务器(端口995):pop.qq.com
SMTP服务器(端口465或587): smtp.qq.com
附:[常用邮箱的服务器(SMTP/POP3)地址和端口总结](https://www.likecs.com/show-160503.html)
-
报错:Couldn’t connect to host, port: smtp.gmail.com, 25; timeout -1
示例中的代码开启的端口为
465,用于qq邮箱,如果是其他的邮箱需要对应的修改一下如
gmail为:587这里有一个大坑:就是我本地是使用
465才成功的,使用587一直连接不上(再来一个参考意见,使用25也可以试试,不过我没连上) -
在本地测试无任何问题,但是上传到阿里云服务器(Centos 7)上就报错
报错:
Couldn't connect to host, port: smtp.163.com, 25; timeout -1;原因:
阿里云出于安全考虑默认禁用25端口导致发邮件失败解决:参考https://blog.csdn.net/qq_38680405/article/details/123919728
-
使用google邮箱的时候,更改端口之后还是连接不上
-
端口使用
465,而不是587(被注释掉的一段代码) -
额外增加一个属性设置(这个我并没有用到,不过看到有这么写的,作为参考)
props.setProperty(“mail.smtp.socketFactory.auth”, “true”);
final String smtpPort = "465"; props.setProperty("mail.smtp.port", smtpPort); props.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory"); props.setProperty("mail.smtp.socketFactory.fallback", "false"); props.setProperty("mail.smtp.socketFactory.auth", "true"); props.setProperty("mail.smtp.socketFactory.port", smtpPort); -
-
记录一下,我在使用google邮箱向163邮箱发送邮件的时候有延迟
第一次延迟大概5分钟,第二次延迟大概4分钟
表现如下
1. 接口调用成功,这里设置的是立刻发送2. 在手机和网页版邮箱刷新都没有新邮件3. 过了几分钟,能收到新邮件通知了4. 并且收件箱上面显示的发件时间是几分钟之前但是换成qq邮箱给qq邮箱发送的时候就没有延迟了,其他的情况未测试
-
简单发送文本的content也是可以支持html标签的,所以如果你能够把页面上面的富文本转化为html标签的话,也是可以支持的
如,我这边有一个富文本组件,输出出来的结果就是
包裹的其他标签"123412
sdfas
asdfas2341
sdfaxcvzx
cvx
"把这个作为content传递给接口是可以发送的
然后接下来测试了图片,包含大图片(5.88MB),输出出来的长度大概为8百多万的字符串,也是可以发送的,但是就比较慢了
- 接口很慢,但是可以成功(8.48秒)
- 网页版qq邮箱查看收件箱也很慢(3-4秒吧)
- 进入了收件箱之后显示图片也很慢(也大概3-4秒)
这个示例是包含图片,但是大图片粘贴丢失了好多,就先展示这个吧
<p>123412p><p>sdfasp><p>asdfas2341a>p><p><s>sdfaxs>p><p><em>cvzxem>p><p><strong>cvxstrong>p>hello world\nfasdfsa\npre><p>2342sfsdsfp><p>
p>
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
