个人博客:haichenyi.com。感谢关注
邮件发送是必不可少的,不管是注册邮件,还是广告。
spring boot中已经集成的mail的启动器,所以,我们只用配置好就行了。
引入启动器:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency>那么,需要配置什么内容呢?我们之前讲过,需要配置的东西,spring boot都给我们提前准备好了,都在自动配置类AutoConfigure那个类里面,我们可以找一找,里面有个mail包,这个就是邮件的相关配置类。
我们可以看到上面的prefix中的spring.mail就是我们的配置文件中的前缀,这个类里面的公共变量,就是我们配置文件中的键。我们这里配置了四个值。
#配置邮箱账号 spring.mail.username=371965177@qq.com spring.mail.password=XXXXXXX #配置发送邮件服务器 spring.mail.host=smtp.qq.com #配置ssl安全连接 spring.mail.properties.smtp.ssl.enable = true这里的密码,我们不能填,我们的QQ号密码吧?需要在你的QQ邮箱去设置。生成授权码即可。直接百度一下:QQ邮箱怎么生成授权码,有教程。然后,把生成的授权码填到这里就行了。配置就这么多
怎么发送邮件呢?也很简单,分两种,一种是简单的文字邮件,一种是复杂带附件的邮件。
package com.haichenyi.springboottask; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.mail.SimpleMailMessage; import org.springframework.mail.javamail.JavaMailSenderImpl; import org.springframework.mail.javamail.MimeMessageHelper; import javax.mail.MessagingException; import javax.mail.internet.MimeMessage; import java.io.File; @SpringBootTest class SpringBootTaskApplicationTests { @Autowired JavaMailSenderImpl javaMailSender; @Test void contextLoads() { //简单邮件 SimpleMailMessage message = new SimpleMailMessage(); //邮件标题 message.setSubject("测试邮件功能标题"); //邮件内容 message.setText("测试邮件内容"); //发件人,必须要跟配置的相同 message.setFrom("371965177@qq.com"); //收件人 message.setTo("1640200266@qq.com"); javaMailSender.send(message); } @Test public void testMail() throws MessagingException { //带附件邮件,通过createMimeMessage()方法获取对象 MimeMessage mimeMessage = javaMailSender.createMimeMessage(); //这里带附件的邮件需要用到这个帮助类 MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage,true); messageHelper.setSubject("测试邮件功能标题"); //可以发送html语句,第一个参数是内容,第二个参数设置为true即可。 messageHelper.setText("<h1 style='color;blue'>测试邮件内容</h1>",true); //addAttachment添加附件的方法。第一个是名字,第二个是file messageHelper.addAttachment("1.txt",new File("D:\\Download\\t.txt")); messageHelper.setFrom("371965177@qq.com"); messageHelper.setTo("1640200266@qq.com"); //这里发送的还是MimeMessage对象,并不是那个帮助类对象 javaMailSender.send(mimeMessage); } }每一行都有注释,已经写的很清楚了,就不做过多的解释了。