页面加载中...

SpringBoot邮件工具

| Spring Boot | 0 条评论 | 1072浏览

参考:https://www.cnblogs.com/ityouknow/p/6823356.html

准备工作:

添加依赖:


    org.springframework.boot
    spring-boot-starter-mail
 

增加配置

在application.properties中进行如下配置:

#发送邮件
spring.mail.host=smtp.qq.com
spring.mail.username=437845310@qq.com
spring.mail.password=保密哦
spring.mail.default-encoding=UTF-8

spring.mail.host是表示邮箱的smtp地址。该地址需要你在你的邮箱设置中打开,设置后会有一个密码,该密码就是spring.mail.password。spring.user.name就是你邮箱的登录名。

一、发送一封最基本的邮件:

建一个service类,直接使用@Compoent直接将该类交给spring容器,直接注入JavaMailSender对象。

@Component
public class MailService {
//发送方的邮箱地址
private static final String from = "437845310@qq.com";
//发送给谁
private static final String to = "abreaking@163.com";
//抄送给谁
private static final String[] copyto = {"437845310@qq.com"};
@Resource
private JavaMailSender javaMailSender;

//发送一封简单的邮件,纯主题+内容 public void sendSimpleMessage(){ SimpleMailMessage message = new SimpleMailMessage(); message.setFrom(from); message.setTo(to); /message.setCc(copyto);/ message.setSubject("放假通知"); message.setText("年轻人,你的思想很危险"); javaMailSender.send(message); } }

编写测试代码:

@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes = SpringbootApplication.class)
public class SpringbootApplicationTests {
    @Resource
    MailService mailService;
    @Test
    public void test01(){
        mailService.sendSimpleMessage();
    }
}


这时,我们再查看邮件

二、发送一封HTML邮件

其他都不变,直接再MailService中创建方法:

//发送html格式的邮件
public void sendHtmlMessage() {
    MimeMessage mimeMessage = javaMailSender.createMimeMessage();
    String htmlText = "

红色字体内容

"; try { //true表示需要创建一个multipart message MimeMessageHelper helper = new MimeMessageHelper(mimeMessage,true); helper.setFrom(from); helper.setTo(to); helper.setSubject("html邮件"); helper.setText(htmlText,true); javaMailSender.send(mimeMessage); } catch (MessagingException e) { e.printStackTrace(); } }

测试结果为:

三、发送带附件的邮件

其他,不变,编写方法:使用FileSystemResource类实例化需要上传的附件,指定发送过去的附件名

public void sendMessageWithAttachment(){
    MimeMessage mimeMessage = javaMailSender.createMimeMessage();
    try {
        MimeMessageHelper helper = new MimeMessageHelper(mimeMessage,true);
        helper.setFrom(from);
        helper.setTo(to);
        helper.setSubject("带附件的发送");
        helper.setText("内容见附件",true);
        FileSystemResource file = new FileSystemResource(new File("e:\附件.txt"));
        //添加多个附件可以多次addAttachment
        helper.addAttachment("发送的附件.txt",file);
        javaMailSender.send(mimeMessage);
    } catch (MessagingException e) {
        e.printStackTrace();
    }
}

收到附件:


四、使用邮件模板

举个栗子:我们使用邮箱注册某个网站时,会有一个验证码发到我们的邮箱,如:
    你好!你已经注册到xx网站,验证码为:123456。
(可能内容、格式还会更丰富一些),其实内容都一样,无非就验证码不一样。
所以,我们先创建一个模板页面:(使用thymeleaf,),当然,要先添加依赖


    org.springframework.boot
    spring-boot-starter-thymeleaf

创建一个模板页面:mail.html




    
    Title


    此次的验证码为:code。该验证码5分钟有效。

创建方法:

@Resource
TemplateEngine templateEngine;
public void sendTemplateMail(){
    Context context = new Context();
    context.setVariable("code","123456");
    String htmlText = templateEngine.process("mail", context);
//使用发送html的方式发送。如上面</code></pre> 

收到邮件如下

发表评论

最新评论

    来第一个评论吧!