0
点赞
收藏
分享

微信扫一扫

SpringBoot邮件任务

东林梁 2022-03-14 阅读 121

文章目录

1. 导入依赖

<!--邮件-->
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-mail</artifactId>
</dependency>

2. 配置yml

spring:
  mail:
    username: xxxxxx@qq.com
    #授权码
    password: zlrrousjcapdddda
    #邮件发送服务器 QQ的为smtp.qq.com 网易的为smtp.163.com
    host: smtp.qq.com

3. 编写邮件工具类

@Component
public class SendMail {

    //注入邮件发送器
    @Resource
    JavaMailSenderImpl mailSender;

    //发送简单邮件 只有标题和正文的文字
    public void sendSimpleMail(String from,String to,String subject,String text) {
        SimpleMailMessage message = new SimpleMailMessage();
        message.setFrom(from);
        message.setTo(to);
        message.setSubject(subject);
        message.setText(text);
        mailSender.send(message);
    }

    //发送复杂邮件 包含附件(文件)和HTML文本
    public void sendComplexMail(String from, String to, String subject, String text, List<FileAttachment> list) throws MessagingException {
        MimeMessage mimeMessage = mailSender.createMimeMessage();
        MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);
        helper.setFrom(from);
        helper.setTo(to);
        helper.setSubject(subject);
        helper.setText(text);
        for (FileAttachment attachment : list) {
            helper.addAttachment(attachment.getAttachmentFilename(),attachment.getFile());
        }
        mailSender.send(mimeMessage);
    }
}

4. 附件类

@Data
@NoArgsConstructor
@AllArgsConstructor
public class FileAttachment {
    private String attachmentFilename;

    private File file;
}

5. 测试

@SpringBootTest
@RunWith(SpringRunner.class)
public class MailTest {

    @Autowired
    private SendMail sendMail;

    @Test
    public void mailSimple() {
        sendMail.sendSimpleMail("xxxxxx@qq.com","yyyyyy@qq.com",
                "美好的一天","狗东西");
    }

    @Test
    public void mailComplex() throws MessagingException {
        ArrayList<FileAttachment> attachments = new ArrayList<>();
        FileAttachment attachment = new FileAttachment();
        attachment.setAttachmentFilename("郑丹丹");
        attachment.setFile(new File("C:\\Users\\zbx\\Desktop\\郑丹丹.jpg"));
        sendMail.sendComplexMail("xxxxxx@qq.com","yyyyyy@qq.com",
                "美好的一天","狗东西",attachments);
    }
}
举报

相关推荐

0 条评论