天道不一定酬所有勤
但是,天道只酬勤

邮件发送介绍和项目整合spring邮箱starter

  • 邮件发送的基本过程与概念
  • 邮件服务器 :类似于现实生活中的邮局,它主要负责接收用户投递过来的邮件,并把邮件投递到邮件接收者的电子邮箱中
  • 电子邮箱 :用户在邮件服务器上申请的一个账户
    • from:xxx@xx.com  —-发件人
    • to:xxx@xx.com   —-收件人
    • subject:hello     —-主题
    • body: 欢迎来到小滴课堂 —–内容体
  • 邮件传输协议
  • SMTP协议:全称为 Simple Mail Transfer Protocol,简单邮件传输协议。它定义了邮件客户端软件和SMTP邮件服务器之间,以及两台SMTP邮件服务器之间的通信规则
  • POP3协议:全称为 Post Office Protocol,邮局协议。它定义了邮件客户端软件和POP3邮件服务器的通信 规则
  • IMAP协议:全称为 Internet Message Access Protocol,Internet消息访问协议,它是对POP3协议一种扩展,也是定义了邮件客户端软件和IMAP邮件服务器的通信规则
  • 账号准备和配置
  • https://mail.126.com/
  • 发送端使用网易邮箱
  • 使用邮箱授权码发送
    • HHCKFIBFYWRIPGCC
  • user-service项目配置添加依赖
          <!--发送邮件-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-mail</artifactId>
        </dependency>

配置文件

#邮箱服务配置  
  mail:
      host: smtp.qq.com #发送邮件服务器
      username: 97011142@qq.com #发送邮件的邮箱地址
      password: CJVYSJOTRXUSSEJE #客户端授权码,不是邮箱密码,网易的是自己设置的
      from: waitforxy@126.com # 发送邮件的地址,和上面username一致

      properties.mail.smtp.starttls.enable: true
      properties.mail.smtp.starttls.required: true
      properties.mail.smtp.ssl.enable: true
      default-encoding: utf-8

用户微服务 service封装

@Service
@Slf4j
public class MailServiceImpl implements MailService {

    /**
     * Spring Boot 提供了一个发送邮件的简单抽象,直接注入即可使用
     */
    @Autowired
    private JavaMailSender mailSender;

    /**
     * 配置文件中的发送邮箱
     */
    @Value("${spring.mail.from}")
    private String from;

    @Override
    public void sendSimpleMail(String to, String subject, String content) {
        //创建SimpleMailMessage对象
        SimpleMailMessage message = new SimpleMailMessage();
        //邮件发送人
        message.setFrom(from);
        //邮件接收人
        message.setTo(to);
        //邮件主题
        message.setSubject(subject);
        //邮件内容
        message.setText(content);
        //发送邮件
        mailSender.send(message);
        log.info("邮件发成功:{}",message.toString());
    }


}

测试执行一下

@Slf4j
@RunWith(SpringRunner.class)
@SpringBootTest(classes = UserApplication.class )
public class Mailtest {

    @Autowired
    private MailService mailService;

    @Test
    public void testSendMail() {
        mailService.sendMail("97011142@qq.com","欢迎光临","这就是内容");
    }

}
未经允许不得转载:java技术小栈 » 邮件发送介绍和项目整合spring邮箱starter
分享到

评论 抢沙发