最近代码刚好用到邮箱验证,所以自己就总结了一下基于网易163邮箱的使用,仅供参考一下:
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMessage.RecipientType;
public class MailUtils {
private static String smtp_host = "smtp.163.com";//固定不变
private static String username = "*********@163.com";//用于发送邮件的邮箱
private static String password = "*********";//授权码,不是邮箱密码
private static String from = "*********@163.com";//显示在收到邮件上的邮箱名,可以更换
private static String activeUrl = "自己项目webservice接口路径";
//如果直接发送验证码就不需要,直接放验证码
public static void sendMail(String subject, String content, String to,
String activecode) {
Properties props = new Properties();
props.setProperty("mail.smtp.host", smtp_host);
props.setProperty("mail.transport.protocol", "smtp");
props.setProperty("mail.smtp.auth", "true");
Session session = Session.getInstance(props);
Message message = new MimeMessage(session);
try {
message.setFrom(new InternetAddress(from));
message.setRecipient(RecipientType.TO, new InternetAddress(to));
message.setSubject(subject);
//message.setText(content);
message.setContent("<h3>请点击地址激活:<a href=" + activeUrl
+ "?activecode=" + activecode + ">" + activeUrl
+ "</a>+activeUrl+"</h3>", "text/html;charset=utf-8");
Transport transport = session.getTransport();
transport.connect(smtp_host, username, password);
transport.sendMessage(message, message.getAllRecipients());
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("邮件发送失败...");
}
}
public static void main(String[] args) {
sendMail("邮件主题", "邮件内容", "收件邮箱");
}
}
关于如何开启第三方邮件客户端,在登录邮箱后,点击设置,左边有个客户端授权密码,点击开启客户端授权码,这里要手机验证,然后设置授权码,这个授权码就是上面要用到的password !