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<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);
|
}
|
}
|