使用SimpleEmail邮件发送之QQ邮箱

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xiaoye319/article/details/89476706

       最近工作的项目当数据达到预警值的时候要发送邮件给相关人员,于是用了SimpleEmail来发送邮件了,这里是发送到QQ邮箱,至于发送到其他邮箱,都是差不多的设置,知道对应邮箱的服务器设置,配置即可。SimpleEmail是org.apache.commoms下面的,是我们常用的包。

一、查找QQ邮箱SMTP服务器的配置参数(host以及端口)

访问QQ邮箱官方的配置说明即可找到:https://service.mail.qq.com/cgi-bin/help?subtype=1&&id=28&&no=167

       可以看到,SMTP服务器的host是:smtp.qq.com,端口465或者687。我是用了SMTP协议的,至于POP3协议的,有兴趣的同学可以自己试试。

二、开启发送者邮箱的POP3/SMTP服务

      并不是拿到了配置参数就可以,还得开启你使用的作为发送者的邮箱的POP3/SMTP服务,并拿到对应的授权码,不需要你邮箱的密码,还是有个单独的授权码,给第三方使用的。接收者的邮箱不需要任何配置。

       登录发送者的QQ邮箱,然后设置-->账户-->POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务-->POP3/SMTP服务-->开启。然后通过密保验证以后获得授权码。如果之前开通过,但是不记得授权码了,你可以把这个关闭,再重新打开,重新获得。

谨记:若获得了授权码以后,你修改了QQ邮箱或者独立密码,则该授权码将无效。

三、代码,基于java的。我用QQ邮箱发送邮件给我的163邮箱

SimpleEmail simpleEmail = new SimpleEmail();
		//开启SSL加密
		simpleEmail.setSSLOnConnect(true);
		//SMTP服务器的端口
		simpleEmail.setSslSmtpPort("465");
		//SMTP服务器的名字
		simpleEmail.setHostName("smtp.qq.com");
		//发件人邮箱以及授权码
		simpleEmail.setAuthentication("[email protected]", "ttinmtgrqobljddd");
		//编码集
		simpleEmail.setCharset("UTF-8");
		
		try {
			//收件人邮箱
			simpleEmail.addTo("[email protected]");
			//发件人邮箱以及发件人名称
			simpleEmail.setFrom("[email protected]", "XXXX先生:");
			//邮件主题
			simpleEmail.setSubject("告警邮件");
			//邮件内容
			simpleEmail.setMsg("设备发生告警,请尽快处理!");
			simpleEmail.send();
		} catch (Exception e) {
			log.error("发送邮件失败", e);
			throw new Exception("发送邮件失败");
		}

相关代码的意思已经在注释里面了,一目了然。经测试,发送成功。

四、邮箱收到消息如下:

猜你喜欢

转载自blog.csdn.net/xiaoye319/article/details/89476706