wl
2022-10-24 9969bea2a8c1eab64c12a51a2d24d65e5b6c0dd0
ycl-platform/src/main/java/com/ycl/service/message/factory/MailSender.java
@@ -4,7 +4,9 @@
import com.ycl.dto.message.MessageParam;
import com.ycl.entity.message.Message;
import com.ycl.exception.ApiException;
import com.ycl.service.message.ISmsAuditService;
import com.ycl.service.message.Sender;
import com.ycl.service.user.UmsAdminService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@@ -35,25 +37,46 @@
    public void setPropertyValueUtil(PropertyValueUtil propertyValueUtil) {
        MailSender.propertyValueUtil = propertyValueUtil;
    }
    private static ISmsAuditService iSmsAuditService;
    @Autowired
    public void setISmsAuditService(ISmsAuditService iSmsAuditService) {
        MailSender.iSmsAuditService = iSmsAuditService;
    }
    private static UmsAdminService adminService;
    @Autowired
    public void setUmsAdminService(UmsAdminService adminService) {
        MailSender.adminService = adminService;
    }
    @Override
    public Message sendMessage(MessageParam messageParam) {
        //入库保存
        Message message = innerSender.sendMessage(messageParam);
        //发起审核
        iSmsAuditService.startAuditSms(message);
        //id换成邮箱号
        String targetToMail = adminService.getTargetTo(messageParam.getTargetTo(), messageParam.getChannelCode());
        message.setTargetTo(targetToMail);
        //发送邮件
        sendMail(message);
        return message;
    }
    public Message sendMail(Message message) {
        //组装邮件发送
        JavaMailSenderImpl sender = new JavaMailSenderImpl();
        sender.setHost(propertyValueUtil.getHost());
        sender.setUsername(propertyValueUtil.getUsername());
        sender.setPassword(propertyValueUtil.getAuthorizationCode());
        String[] mailUrls = messageParam.getTargetTo().split(",");
        SimpleMailMessage[] messageList = new SimpleMailMessage[mailUrls.length];
        String[] mails = message.getTargetTo().split(",");
        SimpleMailMessage[] messageList = new SimpleMailMessage[mails.length];
        for (int i=0;i<messageList.length;i++) {
            SimpleMailMessage messageTo = new SimpleMailMessage();
            messageTo.setFrom(messageParam.getTargetFrom());
            messageTo.setTo(mailUrls[i]);
            messageTo.setSubject(messageParam.getHead());
            messageTo.setFrom(propertyValueUtil.getUsername());
            messageTo.setTo(mails[i]);
            messageTo.setSubject(message.getHead());
            messageTo.setText(message.getBody());
            messageList[i] = messageTo;
        }