关于 Javamail 的发送邮件问题

本贴最后更新于 3081 天前,其中的信息可能已经时移世易

最近开始研究怎么样去写一个博客系统,在想到注册环节的时候,考虑可以通过验证邮箱来注册,所以就去学习如何使用Javamail. 在看了一些技术博客的时候,发现Java的实现如下所示:

1.登录你的邮箱开启POP3/SMTP服务,并设置授权码,我用的是网易的邮箱,QQ邮箱的话要解决SSL的问题,我也不懂

2. 首先是maven的Jar导入

![1476790208316](https://b3logfile.com/2cfefbffe6b44607b2db266233c9a2cb.png)

3. 然后就是发送emali的方法的编写

public class SendEmail { public static void main(String[] args) throws MessagingException { Properties props = new Properties(); // 开启debug调试 props.setProperty("mail.debug", "true"); // 发送服务器需要身份验证 props.setProperty("mail.smtp.auth", "true"); // 设置邮件服务器主机名 props.setProperty("mail.host", "smtp.163.com"); // 发送邮件协议名称 props.setProperty("mail.transport.protocol", "smtp"); // 设置环境信息 Session session = Session.getInstance(props); // 创建邮件对象 Message msg = new MimeMessage(session); msg.setSubject("JavaMail测试"); // 设置邮件内容 msg.setText("这是由JavaMail发送的邮件!"); // 设置发件人 msg.setFrom(new InternetAddress("linxiao@163.com")); Transport transport = session.getTransport(); // 连接邮件服务器, transport.connect("linxiao", "你的授权码"); // 发送邮件,下面的邮箱地址你要发送到的邮箱 transport.sendMessage(msg, new Address[] {new InternetAddress("linda@163.com")}); // 关闭连接 transport.close(); } }

1476789714016

控制台显示发送成功,并且邮箱收到邮件

![1476790098658](https://b3logfile.com/042bcdf53ed34fd88ef011f6f18b62b3.png)

可过了不久之后(大概半小时后),再次运行这个方法,就会报错

![1476793390524](https://b3logfile.com/78445cdc5a304c28a0a3ca2f65dd035e.png)

打开网页链接,发现是这样的

![1476793452455](https://b3logfile.com/3801acfce5bf4d75b95848960fba16e3.png)

我的代码没改,但就是发不了邮件了,但是过了几个小时之后又可以发邮件了,如此反复这种情况,我很疑惑?希望有人能指点一下我

  • Java

    Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的。Java 技术具有卓越的通用性、高效性、平台移植性和安全性。

    3194 引用 • 8214 回帖
  • 邮件
    17 引用 • 39 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • 88250

    用专门的邮件服务吧,比如 [SendCloud]

    1 回复
  • LINhunger
    作者

    额,那个好像要钱诶,我其实还是个学生,写这个也是为了了解一下原因而已。

    1 回复
  • 88250

    有免费配额的,个人用的话完全够的,一天我记得可以发个 100 封左右吧。

    1 回复
  • LINhunger
    作者

    听了 Dalao 的建议,果然很快实现了这个功能,可是这让我总有一种想法,自己写的代码,局限性很明显,漏洞又多,而引用别人的插件,不但开发简单,效率高,几乎没有漏洞。所以就有这样的想法,在市面上能找到现成的东西,就不要自己写,而自己要做的,就是做没有的东西,就比如这个发邮件的功能,你要做的就是学会如何把在这个插件用到自己的项目中。但是这样又觉得自己太肤浅了……我现在是一名大二的学生,对自己的学习之路也很迷茫,也害怕把时间浪费在不必要的事情上,希望听到更多前辈的建议呀!!

  • eddy

    连续向同一个邮箱发送相同或者相似内容的邮件,会被邮箱识别为垃圾邮件短时间被封