guoshilong
2024-02-02 36b7f863fda32d53b5cdadd6ee1514de4aea3905
src/main/java/org/springblade/modules/email/service/impl/EmailAccountServiceImpl.java
@@ -1,10 +1,12 @@
package org.springblade.modules.email.service.impl;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.tool.utils.StringUtil;
import org.springblade.modules.email.config.MailProperties;
import org.springblade.modules.email.config.MailSenderConfig;
import org.springblade.modules.email.entity.EmailAccount;
import org.springblade.modules.email.service.IEmailAccountService;
import org.springblade.modules.messageRecord.entity.MessageUser;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.JavaMailSenderImpl;
@@ -14,6 +16,8 @@
import javax.annotation.Resource;
import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
import java.util.List;
import java.util.stream.Collectors;
@Service
@Slf4j
@@ -29,27 +33,44 @@
   @Override
   public void senderEmail(EmailAccount account) {
      log.info(Thread.currentThread().getName());
      JavaMailSenderImpl javaMailSender = senderConfig.getSender();
      //一个复杂的邮件
      MimeMessage message = javaMailSender.createMimeMessage();
      try {
         //组装
         MimeMessageHelper helper = new MimeMessageHelper(message, true);
         //主题(标题)
         helper.setSubject(account.getSubject());
      if (account.getEmails().size()>0){
         log.info(Thread.currentThread().getName());
         JavaMailSenderImpl javaMailSender = senderConfig.getSender();
         //一个复杂的邮件
         MimeMessage message = javaMailSender.createMimeMessage();
         try {
            //组装
            MimeMessageHelper helper = new MimeMessageHelper(message, true);
         helper.setText(account.getContent(),true);
            //主题(标题)
            helper.setSubject(account.getSubject());
         helper.setTo(account.getEmails().toArray(new String[account.getEmails().size()]));
            helper.setText(account.getContent(),true);
         helper.setFrom(javaMailSender.getUsername());
            helper.setTo(account.getEmails().toArray(new String[account.getEmails().size()]));
         javaMailSender.send(message);
            helper.setFrom(javaMailSender.getUsername());
      } catch (MessagingException e) {
         e.printStackTrace();
            javaMailSender.send(message);
         } catch (MessagingException e) {
            e.printStackTrace();
         }
      }
   }
   @Override
   public void sendMessageUserEmail(String title, String content, List<MessageUser> messageUserList) {
      List<String> emails = messageUserList.stream().filter(e -> StringUtil.isNotBlank(e.getEmail())).map(MessageUser::getEmail).collect(Collectors.toList());
      EmailAccount emailAccount = new EmailAccount();
      emailAccount.setEmails(emails);
      emailAccount.setSubject(title);
      emailAccount.setContent(content);
      senderEmail(emailAccount);
   }
}