guoshilong
2024-02-02 36b7f863fda32d53b5cdadd6ee1514de4aea3905
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
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);
    }
}