发送邮件的邮箱设置
- 开启客户端授权码,如图:
代码部分
- 导入依赖项如下:
<!-- 发送邮件 -->
<dependency>
<groupId>com.sun.mail</groupId>
<artifactId>javax.mail</artifactId>
<version>1.5.3</version>
</dependency>
<dependency>
<groupId>javax.mail</groupId>
<artifactId>javax.mail-api</artifactId>
<version>1.5.6</version>
</dependency>
-
封装一个写邮件的类,并定义一个含有两个参数的发邮件的静态方法,
-
传过来发送到的邮箱地址,与想要发送的内容,这里发送的是一个激活链接
-
在类的title写邮件的标题,body中写要发送的内容,也可以设置成参数传过来
-
代码如下:
public class WriteEmail {
public static void emailSend(String email,String url) {
// http://blog.csdn.net/ja_ii_ck/article/details/3018553
String smtpHost = "smtp.126.com";
String toaddress = email;
String user = "********@126.com";
String password = "*********";
String title = "公开课验证!";
String body = "点击此链接激活:"+url;
Properties props = new Properties();
props.put("mail.smtp.host", smtpHost);
props.put("mail.smtp.auth", "true");
Session session = Session.getDefaultInstance(props, new Authenticator() {
public PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(user, password);
}
});
MimeMessage message = new MimeMessage(session);
try {
message.setSubject(title);
message.setText(body);
message.setFrom(new InternetAddress("******@126.com"));
message.addRecipient(Message.RecipientType.TO, new InternetAddress(toaddress));
Transport.send(message);
System.out.println("发送成功");
} catch (MessagingException e) {
System.out.println(e);
}
}
}
控制层,只需要调用静态类中的方发即可发送邮件,如下:
WriteEmail.emailSend(user.getEmail(), "http://localhost:8088/" + salt);