lin
2024-03-04 e46f74096736c408328cf588e55ea2152f436de4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
package org.springblade.modules.email.service.impl;
 
import com.xxl.job.core.util.DateUtil;
import lombok.extern.slf4j.Slf4j;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
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.io.File;
import java.util.List;
import java.util.stream.Collectors;
 
@Service
@Slf4j
public class EmailAccountServiceImpl implements IEmailAccountService {
 
    private static Logger logger = LoggerFactory.getLogger(EmailAccountServiceImpl.class);
 
    @Autowired
    MailSenderConfig senderConfig;
 
    @Autowired
    MailProperties mailProperties;
 
 
    @Override
    public Boolean 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);
                return true;
 
            } catch (MessagingException e) {
                logger.error("邮件发送失败!", e);
                return false;
            }
        }
        return false;
    }
 
    @Override
    public Boolean 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);
 
        return  senderEmail(emailAccount);
    }
}