SpringBoot笔记-注册后发送邮箱点击激活(异步)

演示如下:

填写好用户名密码,邮箱后:

点击提交后后台打印:

数据库中:

邮件已经收到:

程序结构如下:

要注意的地方:

application.properties中这两个要一样,

密码是这里获取的:

发送邮寄是异步的,代码如下:

package com.email.demo.async;

import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.mail.javamail.MimeMessagePreparator;
import javax.mail.internet.MimeMessage;


public class MailTask implements Runnable {


    private String code;
    private String email;
    private String mailFrom;
    private String domainName;
    private JavaMailSender javaMailSender;

    public MailTask(String code, String email, String mailFrom, String domainName, JavaMailSender javaMailSender){

        this.code = code;
        this.email = email;
        this.mailFrom = mailFrom;
        this.domainName = domainName;
        this.javaMailSender = javaMailSender;
    }

    @Override
    public void run() {

        //发送邮件
        javaMailSender.send(new MimeMessagePreparator() {

            @Override
            public void prepare(MimeMessage mimeMessage) throws Exception {

                System.out.println("开始发送邮件");
                MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage, true, "UTF-8");
                mimeMessageHelper.setFrom(mailFrom);
                mimeMessageHelper.setTo(email);
                mimeMessageHelper.setSubject("一封激活邮件");
                StringBuilder sb = new StringBuilder();
                sb.append("<html><head></head><body>");
                sb.append("<a href=" + domainName + "activate?code=");
                sb.append(code);
                sb.append(">点击激活</a></body>");
                mimeMessageHelper.setText(sb.toString(), true);
                System.out.println("发送结束");
            }
        });
    }
}

程序打包下载地址:

https://github.com/fengfanchen/Java/tree/master/emailDemo

发布了1312 篇原创文章 · 获赞 2429 · 访问量 185万+

猜你喜欢

转载自blog.csdn.net/qq78442761/article/details/105092144