spring boot 发邮件

本文详细介绍了如何在Spring Boot项目中配置并使用spring-boot-starter-mail发送邮件,包括文本邮件、HTML邮件和带有附件的邮件。通过示例代码展示了如何在application.properties文件中配置邮箱,并提供了邮件服务实现类的编写方法。

1、pom包配置 

https://start.spring.io/

pom包里面添加spring-boot-starter-mail包引用

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

2、在application.properties中添加邮箱配置

 

# spring mail 的配置
spring.mail.host=smtp.qq.com
spring.mail.port=587
spring.mail.username=majun*****@qq.com
spring.mail.password=dkwig********

3、编写mailService,这里只提出实现类。

 

@Service
public class MailServiceImpl implements MailService {

    @Value("${spring.mail.username}")
    private String FROM_USER;
    @Autowired
    private JavaMailSender javaMailSender;
    @Override
    public void sendTextMail(String toUser, String subject, String content) {
        SimpleMailMessage message = new SimpleMailMessage();
        message.setFrom(FROM_USER);
        message.setTo(toUser);
        message.setSubject(subject);
        message.setText(content);
        javaMailSender.send(message);
    }

 

4、编写test类进行测试

@RunWith(SpringRunner.class)
@SpringBootTest(classes = {SpringBootDemoMailApplication.class})
public class MailServiceTests {

    private Logger logger = LoggerFactory.getLogger(MailServiceTests.class);
    private String toUser = "majunfengmjf@qq.com";

    @Autowired
    private MailService mailService;

    @Autowired
    private TemplateEngine templateEngine;

    @Test
    public void testSendTextMail() {
        String subject = "Jerome的文本邮件";
        String content = "Jerome的文本邮件的正文部分";
        logger.info("发送文本邮件开始。。。。");
        mailService.sendTextMail(toUser, subject, content);
        logger.info("发送文本邮件结束。。。。");
    }

一个简单的文本发送就完成了

发送html格式邮件 

@Override
public void sendHtmlMail(String toUser, String subject, String content) throws MessagingException {
    MimeMessage mimeMessage = javaMailSender.createMimeMessage();

    MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage, true);
    mimeMessageHelper.setFrom(FROM_USER);
    mimeMessageHelper.setTo(toUser);
    mimeMessageHelper.setSubject(subject);
    mimeMessageHelper.setText(content, true);

    javaMailSender.send(mimeMessage);
}

在测试类中构建html内容,测试发送

@Test
public void testSendHtmlMail() {
    String subject = "Jerome的Html邮件";
    String content = "<html><body><h3>Jerome的Html邮件的正文部分</h3></body></html>";
    logger.info("发送Html邮件开始。。。。");
    try {
        mailService.sendHtmlMail(toUser, subject, content);
    } catch (MessagingException e) {
        logger.error("发送Html邮件失败。。。。");
        logger.error("Cause By:" + e.getMessage());
    }
    logger.info("发送Html邮件结束。。。。");
}

发送带附件的邮件 
在MailService添加sendAttachmentsMail方法.

 

在测试类中添加测试方法

邮件带图片和模板

测试:

 

1、pom中导入thymeleaf的包

2、在resorces/templates下创建emailTemplate.html

3、解析模板并发送

见上图

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值