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; import org.springframework.mail.javamail.MimeMessageHelper; import org.springframework.stereotype.Service; import javax.annotation.Resource; import javax.mail.MessagingException; import javax.mail.internet.MimeMessage; import java.util.List; import java.util.stream.Collectors; @Service @Slf4j public class EmailAccountServiceImpl implements IEmailAccountService { @Autowired MailSenderConfig senderConfig; @Autowired MailProperties mailProperties; @Override public void senderEmail(EmailAccount account) { 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.setSubject(account.getSubject()); helper.setText(account.getContent(),true); helper.setTo(account.getEmails().toArray(new String[account.getEmails().size()])); helper.setFrom(javaMailSender.getUsername()); javaMailSender.send(message); } catch (MessagingException e) { e.printStackTrace(); } } } @Override public void sendMessageUserEmail(String title, String content, List messageUserList) { List 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); } }