1、要添加2个jar配置,注意,前者是api,所以后面那个也要添加
<dependency> <groupId>javax.mail</groupId> <artifactId>javax.mail-api</artifactId> <version>1.6.1</version> </dependency> <dependency> <groupId>com.sun.mail</groupId> <artifactId>javax.mail</artifactId> <version>1.6.1</version> </dependency>
2、具体的实现
public static String getExceptionMessage(Exception e) { StringBuilder msg = new StringBuilder(); msg.append(e.toString()); StackTraceElement[] stackTrace = e.getStackTrace(); for(StackTraceElement s:stackTrace) { msg.append("\n\t"); msg.append(s.toString()); } return msg.toString(); } public static void sendMail(String fromUser, String pwd, String toUser, String title, String content) { try { String host = "mail.XXX.XX"; Properties prop = new Properties(); prop.setProperty("mail.host", host); prop.setProperty("mail.transport.protocol", "smtp"); prop.setProperty("mail.smtp.auth", "true"); // 使用JavaMail发送邮件的5个步骤 // 1、创建session Session session = Session.getInstance(prop); // 开启Session的debug模式,这样就可以查看到程序发送Email的运行状态 session.setDebug(true); // 2、通过session得到transport对象 Transport ts = session.getTransport(); // 3、使用邮箱的用户名和密码连上邮件服务器,发送邮件时,发件人需要提交邮箱的用户名和密码给smtp服务器,用户名和密码都通过验证之后才能够正常发送邮件给收件人。 ts.connect(host, fromUser, pwd); // 4、创建邮件 Message message = createSimpleMail(fromUser, toUser, session, title, content); // 5、发送邮件 ts.sendMessage(message, message.getAllRecipients()); ts.close(); } catch (Exception e) { logger.error("sendMail fail title={}msg={}", title, content, e); } } /** * @Method: createSimpleMail * @Description: 创建一封只包含文本的邮件 * @param session * @return * @throws Exception */ public static MimeMessage createSimpleMail(String fromUser, String toUser, Session session, String title, String content) throws Exception { // 创建邮件对象 MimeMessage message = new MimeMessage(session); // 指明邮件的发件人 message.setFrom(new InternetAddress(fromUser)); // 指明邮件的收件人,现在发件人和收件人是一样的,那就是自己给自己发 // message.setRecipient(Message.RecipientType.TO, new InternetAddress(toUser)); message.setRecipients(Message.RecipientType.TO, getAddress(toUser)); // 邮件的标题 message.setSubject(title); // 邮件的文本内容 message.setContent(content, "text/html;charset=UTF-8"); // 返回创建好的邮件对象 return message; } private static Address[] getAddress(String toUser) throws AddressException { if (toUser.contains(";")) { String[] split = toUser.split(";"); Address[] ret = new Address[split.length]; for (int i = 0; i < split.length; i++) { ret[i] = new InternetAddress(split[i]); } return ret; } else { return new Address[] { new InternetAddress(toUser) }; } }