关于 Javamail 的发送邮件问题

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

最近开始研究怎么样去写一个博客系统,在想到注册环节的时候,考虑可以通过验证邮箱来注册,所以就去学习如何使用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 技术具有卓越的通用性、高效性、平台移植性和安全性。

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

相关帖子

欢迎来到这里!

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

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

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

    1 回复
  • LINhunger
    作者

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

    1 回复
  • 88250

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

    1 回复
  • LINhunger
    作者

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

  • eddy

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