/** * 该类用来发送邮件 * 1、发送velocity 模板邮件不带附件 * 2、发送velocity 模板邮件带附件 */ package com.framework.mail; import java.io.File; import java.util.List; import java.util.Map; import javax.annotation.Resource; import javax.mail.internet.MimeMessage; import org.apache.velocity.app.VelocityEngine; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.mail.javamail.JavaMailSenderImpl; import org.springframework.mail.javamail.MimeMessageHelper; import org.springframework.stereotype.Service; import org.springframework.ui.velocity.VelocityEngineUtils; import com.framework.util.PropertiesLoader; import com.google.common.base.Splitter; @Service public class MailSenderService { private static final Logger logger = LoggerFactory.getLogger(MailSenderService.class); @Resource private VelocityEngine velocityEngine; @Resource private JavaMailSenderImpl mailSender; /** * 发送email * @param subject 邮件主题 * @param toEmail 收件人邮箱 * @param templateName 模板名称 * @param model 模板数据 Map 集合 */ public void sendEmail(String subject,String toEmail,String templateName,Map<String,Object> model) { try{ MimeMessage mailMessage = mailSender.createMimeMessage(); logger.info("fromEmail >>" + mailSender.getUsername()); MimeMessageHelper messageHelper = new MimeMessageHelper(mailMessage,true,"UTF-8"); messageHelper.setTo(toEmail); String fromAddress = PropertiesLoader.get("mail.smtp.from"); messageHelper.setFrom(fromAddress); messageHelper.setSubject(subject); String templateLocation = PropertiesLoader.get("mail.template.path") + templateName; String mailText = VelocityEngineUtils.mergeTemplateIntoString(velocityEngine, templateLocation, "utf-8", model); messageHelper.setText(mailText,true); mailSender.send(mailMessage); logger.info("邮件发送成功"+toEmail); }catch(Exception e) { logger.error("发送邮件异常 >>", e); } } /** * * 发送email * @param subject 邮件主题 * @param toEmail 收件人邮箱 * @param templateName 模板名称 * @param model 模板数据 Map 集合 * @param file 邮件附件 */ public void sendEmail(String subject,String toEmail,String templateName,File file,Map<String,Object> model) { try{ MimeMessage mailMessage = mailSender.createMimeMessage(); logger.info("fromEmail >>" + mailSender.getUsername()); MimeMessageHelper messageHelper = new MimeMessageHelper(mailMessage,true,"UTF-8"); messageHelper.setTo(toEmail); String fromAddress = PropertiesLoader.get("mail.smtp.from"); messageHelper.setFrom(fromAddress); messageHelper.setSubject(subject); String templateLocation = PropertiesLoader.get("mail.template.path") + "/" + templateName; String mailText = VelocityEngineUtils.mergeTemplateIntoString(velocityEngine, templateLocation, "utf-8", model); messageHelper.setText(mailText,true); messageHelper.addAttachment(file.getName(), file);//添加到附件 mailSender.send(mailMessage); logger.info("邮件发送成功"+toEmail); }catch(Exception e) { logger.error("发送邮件异常 >>", e); } } /** * * 发送email * @param subject 邮件主题 * @param toEmail 收件人邮箱 * @param file 邮件附件 * @param content 内容 */ public void sendEmail(String subject,String toEmail,File file,String content) { try{ MimeMessage mailMessage = mailSender.createMimeMessage(); logger.info("fromEmail >>" + mailSender.getUsername()); MimeMessageHelper messageHelper = new MimeMessageHelper(mailMessage,true,"UTF-8"); messageHelper.setTo(toEmail); String fromAddress = PropertiesLoader.get("mail.smtp.from"); messageHelper.setFrom(fromAddress); messageHelper.setSubject(subject); messageHelper.setText(content); messageHelper.addAttachment(file.getName(), file);//添加到附件 mailSender.send(mailMessage); logger.info("邮件发送成功"+toEmail); }catch(Exception e) { logger.error("发送邮件异常 >>", e); } } /** * * @param subject * @param toEmail * @param file * @param content * @param cc :抄送 */ public void sendEmail(String subject,String toEmail,File file,String content,String cc) { try{ MimeMessage mailMessage = mailSender.createMimeMessage(); logger.info("fromEmail >>" + mailSender.getUsername()); MimeMessageHelper messageHelper = new MimeMessageHelper(mailMessage,true,"UTF-8"); if(toEmail!=null&&!"".equals(toEmail)){ List<String> list = Splitter.on(";").trimResults().omitEmptyStrings().splitToList(toEmail); String[] arr = (String[])list.toArray(new String[list.size()]); messageHelper.setTo(arr); } String fromAddress = PropertiesLoader.get("mail.smtp.from"); messageHelper.setFrom(fromAddress); messageHelper.setSubject(subject); messageHelper.setText(content); if(cc!=null&&!"".equals(cc)){ List<String> list = Splitter.on(";").trimResults().omitEmptyStrings().splitToList(cc); String[] arr = (String[])list.toArray(new String[list.size()]); messageHelper.setCc(arr); } messageHelper.addAttachment(file.getName(), file);//添加到附件 mailSender.send(mailMessage); logger.info("邮件发送成功"+toEmail); }catch(Exception e) { logger.error("发送邮件异常 >>", e); } } /** * * 发送email * @param subject 邮件主题 * @param toEmail 收件人邮箱 * @param content 内容 */ public void sendEmail(String subject,String toEmail,String content) { try{ MimeMessage mailMessage = mailSender.createMimeMessage(); logger.info("fromEmail >>" + mailSender.getUsername()); MimeMessageHelper messageHelper = new MimeMessageHelper(mailMessage,true,"UTF-8"); messageHelper.setTo(toEmail); String fromAddress = PropertiesLoader.get("mail.smtp.from"); messageHelper.setFrom(fromAddress); messageHelper.setSubject(subject); messageHelper.setText(content); mailSender.send(mailMessage); logger.info("邮件发送成功"+toEmail); }catch(Exception e) { logger.error("发送邮件异常 >>", e); } } /** * 发送邮件 * * @param subject * @param email * @param file1 * @param file2 * @param file3 * @param content */ public void sendEmail(String subject,String email,File file1,File file2,File file3,String content) { try{ MimeMessage mailMessage = mailSender.createMimeMessage(); logger.info("fromEmail >>" + mailSender.getUsername()); MimeMessageHelper messageHelper = new MimeMessageHelper(mailMessage,true,"UTF-8"); String fromAddress = PropertiesLoader.get("mail.smtp.from"); messageHelper.setTo(email); messageHelper.setFrom(fromAddress); messageHelper.setSubject(subject); messageHelper.setText(content); messageHelper.addAttachment(file1.getName(), file1);//添加到附件 messageHelper.addAttachment(file2.getName(), file2);//添加到附件 messageHelper.addAttachment(file3.getName(), file3);//添加到附件 mailSender.send(mailMessage); logger.info("邮件发送成功"+email); }catch(Exception e) { logger.error("发送邮件异常 >>", e); } } }