java开发重置密码发送邮件
每篇一句励志:随着年龄的增长,我们不变得更好也不更坏,而是变得更像我们自己。
直接上代码
pom.xml
<!--mail-->
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4</version>
</dependency>
emailConfig.properties
## 服务器发送需要验证身份
mail.smtp.auth=true
##使用163邮件服务器主机
mail.host=smtp.163.com
##发送邮件协议名称
mail.transport.protocol=smtp
#如果使用阿里云服务器请把以下俩个配置打开,因为他会把默认的25端口禁用掉
#使用SMTPS协议465端口
#mail.smtp.socketFactory.port=465
#SSL证书Socket工厂
#mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory
##邮件链接跳转地址
url=127.0.0.1:8080
##邮箱账号密码
mail.username=XXXXXXX@163.com
mail.password=XXXXX
eamil.java
@RequestMapping(value = "/eamil",method = RequestMethod.GET)
public Result mail(String username) throws MessagingException, IOException {
String eamil = dataUserApiService.selectEmail(username);
Properties props = new Properties();
// 设置读取配置文件
props.load(this.getClass().getResourceAsStream("/emailConfig.properties"));
Session session = Session.getInstance(props);
// 创建邮件对象
Message msg = new MimeMessage(session);
try {
msg.setSubject("重置密码");
} catch (MessagingException e) {
e.printStackTrace();
}
// 填写邮件内容
String msgContent = "亲爱的 " + username + " 您好:<br/><br/>"
+ "您在 " + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()) + " 提交重置密码的请求。<br/><br/>"
+ "请打开以下链接重置密码:<br/><br/>"
+"<a href='http://localhost:63342/demo/email.html'>http://"+props.getProperty("url")+"/email.html</a><br/><br/>"
+"(如果上面不是链接形式,请将该地址手工粘贴到浏览器地址栏再访问)。"+ "<br/><br/>"
+"如果您没有请求重置密码,请忽略此邮件。" + "<br/><br/>"
+ "感谢使用本系统。" + "<br/><br/>"
+ "此为自动发送邮件,请勿直接回复!";
msg.setContent(msgContent, "text/html;charset=utf-8");// 设置邮件内容为html格式
// 设置发件人
msg.setFrom(new InternetAddress(MimeUtility.encodeText("修改密码") + " <"+ props.getProperty("mail.username")+">"));// 设置邮件来源
Transport transport = session.getTransport();
// 连接邮件服务器
transport.connect(props.getProperty("mail.username"), props.getProperty("mail.password"));
// 发送邮件
transport.sendMessage(msg, new Address[] {new InternetAddress(eamil)});//此处“eamail”填的是要发送的邮箱
transport.close();
// 关闭连接
return ResultUtil.success();
}
记得先得开启你163邮箱的服务,这个服务一般都是开启状态中,不过也有个别。
1.登录163邮箱。
2.点击设置里的POP3/SMTP/IMAP。
3.POP3/SMTP服务 、IMAP/SMTP服务,这俩个服务都打开。