diff --git a/src/main/java/bc/core/bcmail/service/SendMailService.java b/src/main/java/bc/core/bcmail/service/SendMailService.java new file mode 100644 index 0000000..ea11d0a --- /dev/null +++ b/src/main/java/bc/core/bcmail/service/SendMailService.java @@ -0,0 +1,24 @@ +package bc.core.bcmail.service; + + +import bc.core.bcmail.bean.Mail; + +public interface SendMailService { + + /** + * 简单文本邮件 + * + * @param mailRequest + * @return + */ + void sendSimpleMail(Mail mailRequest); + + + /** + * Html格式邮件,可带附件 + * + * @param mailRequest + * @return + */ + void sendHtmlMail(Mail mailRequest); +} diff --git a/src/main/java/bc/core/bcmail/service/impl/SendMailServiceImpl.java b/src/main/java/bc/core/bcmail/service/impl/SendMailServiceImpl.java new file mode 100644 index 0000000..613407a --- /dev/null +++ b/src/main/java/bc/core/bcmail/service/impl/SendMailServiceImpl.java @@ -0,0 +1,85 @@ +package bc.core.bcmail.service.impl; + +import bc.core.bcmail.bean.Mail; +import bc.core.bcmail.controller.GlobalErrorController; +import bc.core.bcmail.service.SendMailService; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; +import org.springframework.util.Assert; + +@Service +public class SendMailServiceImpl implements SendMailService { + + //注入邮件工具类 + @Autowired + private JavaMailSender javaMailSender; + + @Value("${spring.mail.username}") + private String sendMailer; + + //日志初始化 + private static final Log logger = LogFactory.getLog(SendMailServiceImpl.class); + //private static final Logger logger = LoggerFactory.getLogger(SendMailServiceImpl.class); + + public void checkMail(Mail mailRequest) { + Assert.notNull(mailRequest,"邮件请求不能为空"); + Assert.notNull(mailRequest.getSendTo(), "邮件收件人不能为空"); + Assert.notNull(mailRequest.getSubject(), "邮件主题不能为空"); + Assert.notNull(mailRequest.getText(), "邮件收件人不能为空"); + } + + @Override + public void sendSimpleMail(Mail mailRequest) { + SimpleMailMessage message = new SimpleMailMessage(); + checkMail(mailRequest); + //邮件发件人 + message.setFrom(sendMailer); + //邮件收件人 1或多个 + message.setTo(mailRequest.getSendTo().split(",")); + //邮件主题 + message.setSubject(mailRequest.getSubject()); + //邮件内容 + message.setText(mailRequest.getText()); + //邮件发送时间 + message.setSentDate(new Date()); + + javaMailSender.send(message); + logger.info("发送邮件成功:{}->{}",sendMailer,mailRequest.getSendTo()); + } + + + + @Override + public void sendHtmlMail(MailRequest mailRequest) { + MimeMessage message = javaMailSender.createMimeMessage(); + checkMail(mailRequest); + try { + MimeMessageHelper helper = new MimeMessageHelper(message,true); + //邮件发件人 + helper.setFrom(sendMailer); + //邮件收件人 1或多个 + helper.setTo(mailRequest.getSendTo().split(",")); + //邮件主题 + helper.setSubject(mailRequest.getSubject()); + //邮件内容 + helper.setText(mailRequest.getText(),true); + //邮件发送时间 + helper.setSentDate(new Date()); + + String filePath = mailRequest.getFilePath(); + if (StringUtils.hasText(filePath)) { + FileSystemResource file = new FileSystemResource(new File(filePath)); + String fileName = filePath.substring(filePath.lastIndexOf(File.separator)); + helper.addAttachment(fileName,file); + } + javaMailSender.send(message); + logger.info("发送邮件成功:{}->{}",sendMailer,mailRequest.getSendTo()); + } catch (MessagingException e) { + logger.error("发送邮件时发生异常!",e); + } + } +} +