1.依赖

  1. <dependency>
  2. <groupId>javax.mail</groupId>
  3. <artifactId>mail</artifactId>
  4. <version>1.4.7</version>
  5. </dependency>

2.实现

  1. import javax.mail.Session;
  2. import javax.mail.Transport;
  3. import javax.mail.internet.InternetAddress;
  4. import javax.mail.internet.MimeMessage;
  5. import java.util.Properties;
  6. public class Message {
  7. private static String mailFrom = null;// 指明邮件的发件人
  8. private static String password_mailFrom = null;// 指明邮件的发件人登陆密码
  9. private static String mail_host =null; // 邮件的服务器域名
  10. public static void sendMail(String[] mailInfo) throws Exception {
  11. String mailTo = mailInfo[0];
  12. String mailTittle = mailInfo[1];
  13. String mailText = mailInfo[2];
  14. mailFrom = "cloud@huawei.com";
  15. password_mailFrom="123456";
  16. mail_host="smtp.exmail.qq.com";
  17. Properties prop = new Properties();
  18. prop.setProperty("mail.host", mail_host);
  19. prop.setProperty("mail.transport.protocol", "smtp");
  20. prop.setProperty("mail.smtp.port", "465");
  21. prop.setProperty("mail.smtp.auth", "true");
  22. prop.setProperty("mail.smtp.ssl.enable", "true");
  23. // 1、创建session
  24. Session session = Session.getInstance(prop);
  25. // 开启Session的debug模式,这样就可以查看到程序发送Email的运行状态
  26. //session.setDebug(true);
  27. // 2、通过session得到transport对象
  28. Transport ts = session.getTransport();
  29. // 3、使用邮箱的用户名和密码连上邮件服务器,发送邮件时,发件人需要提交邮箱的用户名和密码给smtp服务器,用户名和密码都通过验证之后才能够正常发送邮件给收件人。
  30. ts.connect(mail_host,mailFrom, password_mailFrom);
  31. // 4、创建邮件
  32. javax.mail.Message message = createSimpleMail(session,mailFrom,mailTo,mailTittle,mailText);
  33. // 5、发送邮件
  34. ts.sendMessage(message, message.getAllRecipients());
  35. ts.close();
  36. }
  37. /**
  38. * @Method: createSimpleMail
  39. * @Description: 创建一封只包含文本的邮件
  40. */
  41. public static MimeMessage createSimpleMail(Session session, String mailfrom, String mailTo, String mailTittle,
  42. String mailText) throws Exception {
  43. // 创建邮件对象
  44. MimeMessage message = new MimeMessage(session);
  45. // 指明邮件的发件人
  46. message.setFrom(new InternetAddress(mailfrom));
  47. // 指明邮件的收件人,现在发件人和收件人是一样的,那就是自己给自己发
  48. message.setRecipient(javax.mail.Message.RecipientType.TO, new InternetAddress(mailTo));
  49. // 邮件的标题
  50. message.setSubject(mailTittle);
  51. // 邮件的文本内容
  52. message.setContent(mailText, "text/plain;charset=UTF-8");
  53. // 返回创建好的邮件对象
  54. return message;
  55. }
  56. }

3.案例

  1. Message.sendMail(args)
  2. val args = Array("cloud@huawei.com", "spark任务监控", "exception")