admin管理员组文章数量:1646323
最近工作的项目当数据达到预警值的时候要发送邮件给相关人员,于是用了SimpleEmail来发送邮件了,这里是发送到QQ邮箱,至于发送到其他邮箱,都是差不多的设置,知道对应邮箱的服务器设置,配置即可。SimpleEmail是org.apachemoms下面的,是我们常用的包。
一、查找QQ邮箱SMTP服务器的配置参数(host以及端口)
访问QQ邮箱官方的配置说明即可找到:https://service.mail.qq/cgi-bin/help?subtype=1&&id=28&&no=167
可以看到,SMTP服务器的host是:smtp.qq,端口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");
//发件人邮箱以及授权码
simpleEmail.setAuthentication("aaaaaa@qq", "ttinmtgrqobljddd");
//编码集
simpleEmail.setCharset("UTF-8");
try {
//收件人邮箱
simpleEmail.addTo("bbbbbb@163");
//发件人邮箱以及发件人名称
simpleEmail.setFrom("aaaaaa@qq", "XXXX先生:");
//邮件主题
simpleEmail.setSubject("告警邮件");
//邮件内容
simpleEmail.setMsg("设备发生告警,请尽快处理!");
simpleEmail.send();
} catch (Exception e) {
log.error("发送邮件失败", e);
throw new Exception("发送邮件失败");
}
相关代码的意思已经在注释里面了,一目了然。经测试,发送成功。
四、邮箱收到消息如下:
本文标签: 邮件发送邮箱SimpleEmailqq
版权声明:本文标题:使用SimpleEmail邮件发送之QQ邮箱 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/xitong/1729446471a1201454.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论