java 实现邮件服务

1. 首先我们要开启邮箱的 POP3/SMTP服务

 可以看到我这里已经开启,流程是开启的时候会让你发送一条短信验证,之后验证成功会生成一串秘钥,秘钥待会我们是需要用到的。

2. 引入maven 依赖

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

3.yml 文件中配置 

spring:
  # 邮件服务
  mail:
    # 配置 SMTP 服务器地址
    host: smtp.qq.com
    # 发送者邮箱
    username: [email protected]
    # 配置密码,注意不是真正的密码,而是刚刚申请到的授权码
    password: xxxxxxxxxx
    # 端口号465或587
    port: 587
    default-encoding: utf-8
    # 配置SSL 加密工厂
    properties:
      mail:
        smtp:
          socketFactoryClass: javax.net.ssl.SSLSocketFactory
        #表示开启 DEBUG 模式,这样,邮件发送过程的日志会在控制台打印出来,方便排查错误
        debug: true

 3.在业务代码中使用


import java.util.Date;

/**
 * @Author Lxq
 * @Date 2021-11-05 11:29
 * @Version 1.0
 * 邮件的业务类
 */
@Service
public class EmailServiceImpl implements IEmailService {

    @Autowired
    private JavaMailSender javaMailSender;

    /**
     * 简单邮件
     *
     * @param sendFrom 发送这
     * @param sendTo   接收者(多个用逗号隔开,"10*****[email protected]","12****32*qq.com")
     * @param subject  主题
     * @param sendText 正文
     */
    @Override
    public void sendSimpleMail(String sendFrom, String[] sendTo, String subject, String sendText) {
        // 构建一个邮件对象
        SimpleMailMessage message = new SimpleMailMessage();
        // 设置邮件主题
        message.setSubject(subject);
        // 设置邮件发送者,这个跟application.yml中设置的要一致
        message.setFrom(sendFrom);
        // 设置邮件接收者,可以有多个接收者,中间用逗号隔开,以下类似
        //message.setTo("10*****[email protected]","12****32*qq.com");
        message.setTo(sendTo);
        // 设置邮件发送日期
        message.setSentDate(new Date());
        // 设置邮件的正文
        message.setText(sendText);
        // 发送邮件
        javaMailSender.send(message);
    }
}

 这里只是发送一个简单的邮件,若需要复杂可以找相关文档查看即可。

猜你喜欢

转载自blog.csdn.net/weixin_38982591/article/details/121352812