SpringBoot + 发送QQ邮件

1.开启pop3/smtp服务

image

image

2.生成邮箱授权码

image

3.引入依赖

pom.xml

       <!-- email -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-mail</artifactId>
        </dependency>

4. yml配置

server:
  port: 8080
spring:
  # email 配置
  mail:
    # SMTP 服务器地址
    host: smtp.qq.com
    username: # 你的qq 邮箱地址
    password: # 授权码,上面从 qq 邮箱官网得到的授权码
    port: 587 # smtp服务器的端口最好是465或者587
    protocol: smtp     #smtp的协议
    default-encoding: UTF-8

5.创建邮件收信人的实体类

@AllArgsConstructor
@NoArgsConstructor
@Data
public class EmailModel implements Serializable {


    //邮件主题
    private String emailSubject;

    //邮件内容
    private String emailMessage;

}

5.发送邮件Service

SendEmailService.java

package com.hxut.mrs.service.impl;

import com.hxut.mrs.entity.EmailModel;

import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.mail.javamail.JavaMailSender;

import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Service;

import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;


/**
 * description: SendEmailService
 * date: 2022/9/15 20:16
 * author: MR.孙
 */

@Service
@Slf4j
public class SendEmailService {

    @Autowired
    private JavaMailSender javaMailSender;


    //发送者地址
    @Value("${spring.mail.username}")
    private String posterAddress;

    /**
     * @description:  文本发送
     * @param emailModel
     * @return: void
     * @author: MR.孙
     * @date: 2022/9/15 20:22
    */
    public void sendEmailText(EmailModel emailModel, String to){
        MimeMessage message = javaMailSender.createMimeMessage();
        MimeMessageHelper helper = new MimeMessageHelper(message);

        try {
            //设置发送者邮箱
            helper.setFrom(posterAddress);
            //设置接收者邮件
            helper.setTo(to);
            //设置邮箱主题
            helper.setSubject(emailModel.getEmailSubject());
            //设置邮箱内容
            helper.setText(emailModel.getEmailMessage(), false);
            //发送邮件
            javaMailSender.send(helper.getMimeMessage());

        } catch (MessagingException e) {
            log.error("发送邮件失败"+e.getMessage());
        }

    }



}

6.测试邮件发送

image
image

posted @ 2022-09-16 09:14  长情c  阅读(152)  评论(0)    收藏  举报