使用邮箱发送邮件

使用邮箱发送邮件

以QQ邮箱为例

第一步

开通qq邮箱的SMTP服务
登录邮箱----->点击设置----->点击账户----->开启SMTP服务
在这里插入图片描述

开通的时候,需要按照提示信息短信,短信发送完毕后会给你一个授权码,这个授权码是需要配置在配置文件中,保存好

第二步

引入依赖

		<!--邮件-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-mail</artifactId>
        </dependency>
第三步

在application.yml中进行配置

  # 发送邮件
spring:
  mail:
    # 配置 SMTP 服务器地址,以为配置的是QQ邮箱,所以下面是smtp.qq.com
    host: smtp.qq.com
    # 发送者邮箱
    username: xxxxxxx@qq.com
    # 配置密码,注意不是真正的密码,而是刚刚申请到的授权码
    password: xxxxxx
    # 端口号465或587
    port: 587
    # 默认的邮件编码为UTF-8
    default-encoding: UTF-8
    # 配置SSL 加密工厂
    properties:
      mail:
        smtp:
          socketFactoryClass: javax.net.ssl.SSLSocketFactory
        #表示开启 DEBUG 模式,这样,邮件发送过程的日志会在控制台打印出来,方便排查错误,生产环境可以关闭
        debug: true
第四步

创建发送邮件工具类

import com.lemon.blog.common.exception.BusinessException;
import com.lemon.blog.common.result.ResponseEnum;
import com.lemon.blog.properties.EmailProperties;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Component;

import javax.mail.internet.MimeMessage;
import java.io.File;

//将这个类交给spring管理
@Slf4j
@Component
public class EmailUtil {

    @Autowired
    private JavaMailSender mailSender; //注入邮件发送组件

    public void sendMail(String accepter, String title, String content) {
        log.info("开始发送邮件。。。");
        try {
            //简单邮件  单纯的文字
            SimpleMailMessage simpleMailMessage = new SimpleMailMessage();
            simpleMailMessage.setTo(accepter);//发送给谁
            simpleMailMessage.setSubject(title);//标题
            simpleMailMessage.setText(content);//内容
            simpleMailMessage.setFrom(XXXXX@qq.com);//由谁发送
            mailSender.send(simpleMailMessage);
            log.info("邮件发送成功。。。");
            //发送复杂邮件 带html样式和附件
            /*MimeMessage mimeMessage = mailSender.createMimeMessage();
           	//参数解析  第一个参数 mimeMessage 是邮件的发送类,第二个参数是是否要上传附件,这里为是
            MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);
            helper.setTo("xxxxx@qq.com");//发送给谁
            helper.setFrom("xxxx@163.com");//发送者是谁
            helper.setSubject("斯嘉丽");//邮件标题
            helper.setText("<h1>这是内容</h1><br><font color='red'>这是正文</font>",true);//邮件内容 or 是否是html格式
            helper.addAttachment("斯嘉丽",//附件名称 or 附件信息,除了file 也可以是流的形式
                    new File("C:\\Users\\12485\\Downloads\\Telegram Desktop\\斯嘉丽123.pdf"));
            mailSender.send(mimeMessage);
            System.out.println("邮件发送成功。。。");*/
        } catch (Exception e) {
            log.info("邮件发送失败。。。" + e.getMessage());
            throw new BusinessException(ResponseEnum.EMAIL_BINDING_ERROR);
        }
    }
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lemon20120331

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值