12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- package com.llisoft.sms.service;
- import java.util.Arrays;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.beans.factory.annotation.Value;
- import org.springframework.mail.SimpleMailMessage;
- import org.springframework.mail.javamail.JavaMailSenderImpl;
- import org.springframework.scheduling.annotation.Async;
- import org.springframework.stereotype.Service;
- /**
- * 邮件发送工具类
- * @author YangJie [2019年10月10日]
- */
- @Service
- public class MailService {
-
- private Logger logger = LoggerFactory.getLogger(MailService.class);
-
- @Value("${mta.debug}")
- private boolean debug;
- @Value("${mta.emails}")
- private String[] emails;
-
- @Autowired
- private JavaMailSenderImpl javaMailSender;
-
- /**
- * 发送邮件
- * @param subject 主题
- * @param text 邮件内容
- * 注意主线程结束后线程池中任务不会继续执行
- */
- @Async // 此注解表示方法异步执行, 在同一个类中调用无效, 因为spring会生成动态代理类完成异步调用
- public void sendMail(String subject, String text){
- sendMail(subject, text, emails);
- }
-
- /**
- * 发送邮件
- * @param subject 主题
- * @param text 邮件内容
- * @param tos 收件人列表
- */
- @Async // 此注解表示方法异步执行, 在同一个类中调用无效, 因为spring会生成动态代理类完成异步调用
- public void sendMail(String subject, String text, String... emails){
- if (debug) { // 开发模式不发邮件
- logger.info("开发模式不发邮件:{}", subject);
- return;
- }
- SimpleMailMessage mailMessage = new SimpleMailMessage();
- mailMessage.setFrom(javaMailSender.getUsername());
- mailMessage.setTo(emails);
- mailMessage.setSubject(subject);
- mailMessage.setText(text==null ? "" : text);
- javaMailSender.send(mailMessage);
- logger.info("已向邮箱{}发送了主题为[{}]的邮件", Arrays.asList(emails), subject);
- }
-
- }
|