package com.ycl.service.message.factory; import com.ycl.common.util.PropertyValueUtil; import com.ycl.dto.message.MessageParam; import com.ycl.entity.message.Message; import com.ycl.exception.ApiException; import com.ycl.service.message.Sender; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.mail.SimpleMailMessage; import org.springframework.mail.javamail.JavaMailSenderImpl; import org.springframework.stereotype.Component; /** *

* 邮件发送器 *

* * @author mg * @since 2022-10-09 */ @Component public class MailSender implements Sender { private final Logger logger = LoggerFactory.getLogger(getClass()); private static InnerSender innerSender; @Autowired public void setIMessageService(InnerSender innerSender) { MailSender.innerSender = innerSender; } private static PropertyValueUtil propertyValueUtil; @Autowired public void setPropertyValueUtil(PropertyValueUtil propertyValueUtil) { MailSender.propertyValueUtil = propertyValueUtil; } @Override public Message sendMessage(MessageParam messageParam) { //入库保存 Message message = innerSender.sendMessage(messageParam); //组装邮件发送 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]; for (int i=0;i