|
|
@@ -1,16 +1,21 @@ |
|
|
|
package cn.com.taiji.ias.manager.clientConfig; |
|
|
|
|
|
|
|
import java.util.ArrayList; |
|
|
|
import java.util.HashMap; |
|
|
|
import java.util.List; |
|
|
|
import java.io.File; |
|
|
|
import java.util.Objects; |
|
|
|
|
|
|
|
import javax.mail.internet.MimeMessage; |
|
|
|
|
|
|
|
import cn.com.taiji.core.manager.tools.minio.MinioUtil; |
|
|
|
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.javamail.JavaMailSender; |
|
|
|
import org.springframework.mail.javamail.MimeMessageHelper; |
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
|
|
|
|
import cn.com.taiji.core.model.comm.protocol.ias.message.*; |
|
|
|
import cn.com.taiji.core.model.comm.protocol.ias.message.QtzlEmailSendRequest; |
|
|
|
import cn.com.taiji.core.model.comm.protocol.ias.message.QtzlEmailSendResponse; |
|
|
|
import cn.com.taiji.ias.manager.AbstractCommManager; |
|
|
|
import cn.com.taiji.ias.manager.request.EmailRequest; |
|
|
|
import cn.com.taiji.ias.manager.tools.ThreadPoolTools; |
|
|
@@ -24,6 +29,10 @@ public class QtzlEmailManagerImpl extends AbstractCommManager implements QtzlEma |
|
|
|
private String qtzlEmail; |
|
|
|
@Autowired |
|
|
|
private ThreadPoolTools threadPoolTools; |
|
|
|
@Autowired |
|
|
|
private JavaMailSender mailSender; |
|
|
|
@Autowired |
|
|
|
private MinioUtil minioUtil; |
|
|
|
|
|
|
|
@Override |
|
|
|
public QtzlEmailSendResponse sendEmail(QtzlEmailSendRequest request, String apiKey) { |
|
|
@@ -48,8 +57,7 @@ public class QtzlEmailManagerImpl extends AbstractCommManager implements QtzlEma |
|
|
|
//将异常吃掉,发送失败就发送失败,不能影响后续待发送邮件的发送 |
|
|
|
try { |
|
|
|
//此邮件接口,发送成功后是无返参的 |
|
|
|
// ifztServiceManager.mapApi(hashMap, qtzlEmail); |
|
|
|
jsonPostRepeat(emailRequest,HashMap.class,qtzlEmail,null); |
|
|
|
sendMessage(emailRequest); |
|
|
|
} catch (Exception e) { |
|
|
|
logger.error(e.toString()); |
|
|
|
} |
|
|
@@ -57,4 +65,47 @@ public class QtzlEmailManagerImpl extends AbstractCommManager implements QtzlEma |
|
|
|
}); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public void sendMessage(EmailRequest request){ |
|
|
|
try { |
|
|
|
String emailAddress = request.getEmail(); |
|
|
|
//创建复杂有限发送对象 |
|
|
|
MimeMessage mimeMessage = mailSender.createMimeMessage(); |
|
|
|
|
|
|
|
MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage, true); |
|
|
|
// messageHelper.setFrom("13079168756@163.com"); // 设置发件人邮箱(若配置默认邮箱则不用再设置) |
|
|
|
messageHelper.setTo(emailAddress); // 设置收件人邮箱 |
|
|
|
messageHelper.setSubject("黔通智联通知"); // 设置邮件主题 |
|
|
|
|
|
|
|
// todo 要更改、获取附件资源 |
|
|
|
//设置附件 循环获取附件 |
|
|
|
if (!request.getFilePath().isEmpty()){ |
|
|
|
for (int i = 0; i < request.getFilePath().size(); i++) { |
|
|
|
File file = minioUtil.getFileByUrl(request.getFilePath().get(i).getPath()); |
|
|
|
messageHelper.addAttachment(Objects.requireNonNull(request.getFilePath().get(i).getName()), file); |
|
|
|
} |
|
|
|
} |
|
|
|
//设置邮件内容,后面true代表是html内容 |
|
|
|
messageHelper.setText("<h3 style='color:black;'> 尊敬的用户你好,黔通智联通知您,您要查询的业务数据已附带在该邮件的附件中,请您注意查收,谢谢!</h3>", true); |
|
|
|
//通过线程,异步发送邮件,减少响应时间 |
|
|
|
logger.info("发送到" + emailAddress + "邮箱的邮件,等待发送中!"); |
|
|
|
threadPoolTools.execute(new Runnable() { |
|
|
|
@Override |
|
|
|
public void run() { |
|
|
|
try { |
|
|
|
mailSender.send(mimeMessage); |
|
|
|
logger.info("发送到" + emailAddress + "邮箱的邮件,发送成功!"); |
|
|
|
} catch (Exception e) { |
|
|
|
//TODO 失败邮件,采用重试 |
|
|
|
logger.info("发送到" + emailAddress + "邮箱的邮件,发送失败!"); |
|
|
|
logger.error("", e); |
|
|
|
} |
|
|
|
} |
|
|
|
}); |
|
|
|
} catch (Exception e) { |
|
|
|
logger.error("{}", e.getMessage()); |
|
|
|
// throw UcServiceError.HANDLE_ERROR.toHandleException("发送邮件失败!"); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
} |