EmailUtils.java 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. package com.qrservice.admin.util;
  2. import com.qrservice.admin.config.MailConfig;
  3. import lombok.extern.slf4j.Slf4j;
  4. import org.springframework.mail.javamail.JavaMailSender;
  5. import org.springframework.mail.javamail.MimeMessageHelper;
  6. import javax.mail.MessagingException;
  7. import javax.mail.internet.MimeMessage;
  8. import java.io.File;
  9. import java.io.UnsupportedEncodingException;
  10. /**
  11. * Created by lei
  12. * Date 2020/9/25.
  13. */
  14. @Slf4j
  15. public class EmailUtils {
  16. private static JavaMailSender mailSender = SpringUtil.getBean(JavaMailSender.class);
  17. private static MailConfig config = SpringUtil.getBean(MailConfig.class);
  18. static {
  19. System.setProperty("mail.mime.splitlongparameters","false");
  20. }
  21. /**
  22. * 发送简单的html邮件
  23. * @param subject 主题
  24. * @param content 内容
  25. * @param to 发给谁
  26. * @param cc 抄送
  27. */
  28. public static void sendSimpleHtmlMail(String subject, String content,String to,String[] cc) {
  29. MimeMessage mimeMessage = null;
  30. try {
  31. mimeMessage = mailSender.createMimeMessage();
  32. MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage,true,"UTF-8");
  33. messageHelper.setFrom(config.getUsername()); //设置发件人Email
  34. messageHelper.setSubject(subject); //设置邮件主题
  35. messageHelper.setText(content,true); //设置邮件主题内容
  36. messageHelper.setTo(to); //设定收件人Email
  37. if(cc != null){
  38. messageHelper.setCc(cc); //设定抄送人
  39. }
  40. } catch (MessagingException e) {
  41. e.printStackTrace();
  42. }
  43. mailSender.send(mimeMessage); //发送HTML邮件
  44. }
  45. /**
  46. * 发送带有附件的邮件
  47. * @param subject 主题
  48. * @param content 内容
  49. * @param to 收件人
  50. * @param cc 抄送人
  51. * @param filePaths 文件路径
  52. */
  53. public static void sendAnnexMail(String subject, String content, String to, String [] cc, String [] filePaths) throws MessagingException, UnsupportedEncodingException {
  54. MimeMessage mimeMessage = mailSender.createMimeMessage();
  55. MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage,true,"UTF-8");
  56. messageHelper.setFrom(config.getUsername()); //设置发件人Email
  57. messageHelper.setSubject(config.getSubjectenv()+subject); //设置邮件主题
  58. messageHelper.setText(content,true); //设置邮件主题内容
  59. messageHelper.setTo(to); //设定收件人Email
  60. if(cc != null){
  61. messageHelper.setCc(cc); //设定抄送人
  62. }
  63. for (String filePath : filePaths) {
  64. messageHelper.addAttachment(filePath.substring(filePath.lastIndexOf(File
  65. .separator)+1),new File(filePath));
  66. }
  67. mailSender.send(mimeMessage); //发送HTML邮件
  68. }
  69. public static void sendErrorHtmlMail(Exception e,String transDate, String to, String[] cc) {
  70. StackTraceElement[] stackTrace = e.getStackTrace();
  71. StackTraceElement element = stackTrace[0];
  72. EmailUtils.sendSimpleHtmlMail("清算异常",
  73. "交易日期:"+transDate+"<br>错误类型:"+e.toString()+",错误地址:"+element,to,null);
  74. }
  75. }