package com.qrservice.admin.util; import com.qrservice.admin.config.MailConfig; import lombok.extern.slf4j.Slf4j; import org.springframework.mail.javamail.JavaMailSender; import org.springframework.mail.javamail.MimeMessageHelper; import javax.mail.MessagingException; import javax.mail.internet.MimeMessage; import java.io.File; import java.io.UnsupportedEncodingException; /** * Created by lei * Date 2020/9/25. */ @Slf4j public class EmailUtils { private static JavaMailSender mailSender = SpringUtil.getBean(JavaMailSender.class); private static MailConfig config = SpringUtil.getBean(MailConfig.class); static { System.setProperty("mail.mime.splitlongparameters","false"); } /** * 发送简单的html邮件 * @param subject 主题 * @param content 内容 * @param to 发给谁 * @param cc 抄送 */ public static void sendSimpleHtmlMail(String subject, String content,String to,String[] cc) { MimeMessage mimeMessage = null; try { mimeMessage = mailSender.createMimeMessage(); MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage,true,"UTF-8"); messageHelper.setFrom(config.getUsername()); //设置发件人Email messageHelper.setSubject(subject); //设置邮件主题 messageHelper.setText(content,true); //设置邮件主题内容 messageHelper.setTo(to); //设定收件人Email if(cc != null){ messageHelper.setCc(cc); //设定抄送人 } } catch (MessagingException e) { e.printStackTrace(); } mailSender.send(mimeMessage); //发送HTML邮件 } /** * 发送带有附件的邮件 * @param subject 主题 * @param content 内容 * @param to 收件人 * @param cc 抄送人 * @param filePaths 文件路径 */ public static void sendAnnexMail(String subject, String content, String to, String [] cc, String [] filePaths) throws MessagingException, UnsupportedEncodingException { MimeMessage mimeMessage = mailSender.createMimeMessage(); MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage,true,"UTF-8"); messageHelper.setFrom(config.getUsername()); //设置发件人Email messageHelper.setSubject(config.getSubjectenv()+subject); //设置邮件主题 messageHelper.setText(content,true); //设置邮件主题内容 messageHelper.setTo(to); //设定收件人Email if(cc != null){ messageHelper.setCc(cc); //设定抄送人 } for (String filePath : filePaths) { messageHelper.addAttachment(filePath.substring(filePath.lastIndexOf(File .separator)+1),new File(filePath)); } mailSender.send(mimeMessage); //发送HTML邮件 } public static void sendErrorHtmlMail(Exception e,String transDate, String to, String[] cc) { StackTraceElement[] stackTrace = e.getStackTrace(); StackTraceElement element = stackTrace[0]; EmailUtils.sendSimpleHtmlMail("清算异常", "交易日期:"+transDate+"
错误类型:"+e.toString()+",错误地址:"+element,to,null); } }