|
@@ -0,0 +1,63 @@
|
|
|
+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) { // 开发模式不发邮件
|
|
|
+ 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);
|
|
|
+ }
|
|
|
+
|
|
|
+}
|