热门课程

免费试听

上课方式

开班时间

当前位置: 首页 -   文章 -   新闻动态 -   正文

SpringBoot整合QQ邮件发送

知了堂姐
2024-07-09 11:12:24
0

前言

邮件服务是我们工作中常用的服务之一,作用是非常的多,对外可以给用户发送活动、营销广告等;对内可以发送系统监控报告与告警。

常用邮件的 smtp 服务器地址

sohu:

发送邮件服务器:smtp.sohu.com

接收邮件服务器:pop.sohu.com

126:

接收邮件服务器: POP.126.com

发送邮件服务器: SMTP.126.com

163:

POP3服务器:pop.163.com

SMTP服务器:smtp.163.com

QQ:

接收邮件服务器:pop.qq.com

发送邮件服务器:smtp.qq.com

1、准备工作

登录邮箱开启PO3/SMTP服务

1.1、SMTP

简单邮件传输协议定义了递送邮件的机制。在下文中,我们将使用基于Java-Mail的程序与公司或者ISP的SMTP服务器进行通讯。这个SMTP服务器将邮件转发到接收者的SMTP服务器,直至最后被接收者通过POP或者IMAP协议获取。这并不需要SMTP服务器使用支持授权的邮件转发,但是却的确要注意SMTP服务器的正确设置(SMTP服务器的设置与JavaMail API无关)。

1.2、POP

POP是一种邮局协议,目前为第3个版本,即众所周知的POP3。POP定义了一种用户如何获得邮件的机制。它规定了每个用户使用一个单独的邮箱。大多数人在使用POP时所熟悉的功能并非都被支持,例如查看邮箱中的新邮件数量。而这个功能是微软的Outlook内建的,那么就说明微软Outlook之类的邮件客户端软件是通过查询最近收到的邮件来计算新邮件的数量来实现前面所说的功能。因此在我们使用JavaMail API时需要注意,当需要获得如前面所讲的新邮件数量之类的信息时,我们不得不自己进行计算。

1.3、打开qq邮箱>点击设置>账户,默认是关闭的 ,开启PO3/SMTP服务。

手机短信验证成功后,生成16位SMTP命令授权码,见下图:

2、Java原生发送qq邮箱实现步骤

2.1、创建一个JavaSE项目

2.2、新建一个lib文件夹,放邮件发送所需要的架包

2.3、编写核心代码 我这里封装了 也可以不封装

2.4、封装邮箱,代码如下

/**
 * @author makeJava
 *
 * @create 2021-03-21日 18:43
 * @describes qq邮箱工具类
 */
public class Email {
    public void qqemai(String QQmail,String head,String body) throws AddressException, MessagingException {
        Properties properties = new Properties();
        properties.put("mail.transport.protocol", "smtp");// 连接协议
        properties.put("mail.smtp.host", "smtp.qq.com");// 主机名
        properties.put("mail.smtp.port", 465);// 端口号
        properties.put("mail.smtp.auth", "true");
        properties.put("mail.smtp.ssl.enable", "true");// 设置是否使用ssl安全连接 ---一般都使用
        properties.put("mail.debug", "true");// 设置是否显示debug信息 true 会在控制台显示相关信息
        // 得到回话对象
        Session session = Session.getInstance(properties);
        // 获取邮件对象
        Message message = new MimeMessage(session);
        // 设置发件人邮箱地址
        message.setFrom(new InternetAddress("****@qq.com"));
        // 设置收件人邮箱地址
        message.setRecipients(Message.RecipientType.TO,
                new InternetAddress[] { new InternetAddress(QQmail) });
        //new InternetAddress();设置同时发送多个好友
        // 设置邮件标题
        message.setSubject(head);
        // 设置邮件内容
        message.setText(body);
        // 得到邮差对象
        Transport transport = session.getTransport();
        // 连接自己的邮箱账户
        transport.connect("****@qq.com", "*****授权码");// 密码为QQ邮箱开通的stmp服务后得到的客户端授权码
        // 发送邮件
        int i=0;
        transport.sendMessage(message, message.getAllRecipients());
        System.out.println("成功!");
        transport.close();
    }
}

2.5、编写main方法

/**
 * @author makeJava
 *
 * @create 2021-03-21日 18:50
 * @describes 测试qq邮件
 */
public class qqmain {
    public static void main(String[] args) throws MessagingException {
        Email qq=new Email();
        Scanner input=new Scanner(System.in);
        System.out.println("请输入QQ号");
        String QQmail=input.next()+"@qq.com";
        System.out.println("请输入要发送的标题");
        String head=input.next();
        System.out.println("请输入要发送的文本");
        String body=input.next();
        qq.qqemai(QQmail, head, body);
    }
}

3、运行测试:

4、结果如下:

测试成功

5、Springboot实现QQ邮箱的发送

打开qq邮箱>点击设置>账户,默认是关闭的 ,开启PO3/SMTP服务。手机短信验证成功后,生成16位SMTP命令授权码,见下图:

==记住这串授权码 会用到==

6、实现步骤

6.1、创建一个Springboot项目

6.2、勾选web依赖

6.3、导入QQ邮件所需依赖

 
 
        
            org.springframework.boot
            spring-boot-starter-mail
        
        
        
            com.troy.keeper
            keeper-core-boot
        
        
            com.troy.keeper
            keeper-starter-excel
        
        
            com.troy.keeper
            keeper-starter-swagger
        
        
            com.troy.keeper
            sd-user-api
            ${project.parent.version}
        
        
            com.troy.keeper
            sd-system-api
            ${project.parent.version}
        
    

6.4、配置application.properties

#配置邮件消息
spring.mail.host=smtp.qq.com
#发送邮件者信箱
spring.mail.username=xxxxxxxxx@qq.com
#PO3/SMTP服务时邮箱的授权码
spring.mail.password=xxxxxxxxxxxxxxxx
spring.mail.default-encoding=UTF-8
spring.mail.port=465
spring.mail.properties.mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory
spring.mail.properties.mail.debug=true

6.5、编写controller

/**
 * @author makeJava
 *
 * @create 2021-03-21日 19:50
 * @describes 测试qq邮件前端层
 */
@Controller
@RequestBody
@Slf4j
@Api(tags="qq邮件前端层")
public class EmailController {
    @Autowired
    JavaMailSender mailSender;//注入QQ发送邮件的bean
    //定义发送的内容 我这里发送一张图片 需要html标签
    /**
     * 查询所有数据
     *
     * @param goodTestDTO 查询实体
     * @return 所有数据
     */
    public static String body="''";
    @RequestMapping("/qqemail")
    @ApiOperation(value = "定义发送的内容")
    public Object qqemail(@RequestParam String qq,String title) {
        try {
            MimeMessage mimeMessage = this.mailSender.createMimeMessage();
            MimeMessageHelper message = new MimeMessageHelper(mimeMessage);
            message.setFrom("******@qq.com");//设置发件qq邮箱
            qq+="@qq.com";                    //补全地址
            message.setTo(qq);                //设置收件人
            message.setSubject(title);    //设置标题
            message.setText(body,true);      //第二个参数true表示使用HTML语言来编写邮件
//            FileSystemResource file = new FileSystemResource(
//            File file = new File("图片路径");
//            helper.addAttachment("图片.jpg", file);//添加带附件的邮件
//            helper.addInline("picture",file);//添加带静态资源的邮件
            this.mailSender.send(mimeMessage);
            return "发送成功";
        } catch (Exception ex) {
            ex.printStackTrace();
            return "发送成功";
        }
    }
}

6.6、编写前端页面

 




    
    QQ邮件发送


7、启动运行 浏览器输入 localhost:8080/qqEmail.

输入qq号 和标题 点击发送

已收到发送来的图片

测试成功!

以上便是关于SpringBoot整合QQ邮件发送相关内容啦,若想了解更多技术干货可联系知了小姐姐哦~

大家都在看

python学习必备: pycharm常用的快捷...

2024-07-09 浏览次数:0

成都java培训机构有哪些口碑比较好的?

2024-07-09 浏览次数:0

计算机毕设选题参考目录分享

2024-07-09 浏览次数:0

ChatGPT助力大学生就业:创新技术为职业发展...

2024-07-09 浏览次数:0

校企合作协同育人 知了汇智联合西南民大、东软学院...

2024-07-09 浏览次数:0

ssl协议有必要开启吗?SSL协议不开启的后果

2024-07-09 浏览次数:0
最新资讯
SpringBoot整合富文本... SpringBoot整合富文本编辑器
SpringBoot整合Dru... 1、Druid简介 Druid是阿里巴巴开发的号称为监控而生的数据库连接池,Druid是目前最好的数...
SpringBoot整合QQ邮... 前言 邮件服务是我们工作中常用的服务之一,作用是非常的多,对外可以给用户发送活动、营销广告等;对内可...
MybatisPlus介绍以及... MybatisPlus在Mybatis的基础上只做增强,不做改变,就像是魂斗罗中的红人和蓝人一样。 ...
SpringBoot 整合 E... Elasticsearch可以作为一个大型分布式集群(数百台服务器)技术,处理PB级数据,服务大公司...
SpringBoot整合Cap... 1. 基本结构 使用Captcha生成验证码, 利用Redis存储验证码; Redis中的结构为...
Springboot实现软件L... 在我们做系统级框架的时候,我们要一定程度上考虑系统的使用版权,不能随便一个人拿去在任何环境都能用,所...
SpringBoot 常见7大... 1、SpringBoot是什么 Spring Boot 是 Spring 开源组织下的子项目,是 S...
org.springframework.boot spring-boot-starter-mail com.troy.keeper keeper-core-boot com.troy.keeper keeper-starter-excel com.troy.keeper keeper-starter-swagger com.troy.keeper sd-user-api ${project.parent.version} com.troy.keeper sd-system-api ${project.parent.version}

6.4、配置application.properties

#配置邮件消息
spring.mail.host=smtp.qq.com
#发送邮件者信箱
spring.mail.username=xxxxxxxxx@qq.com
#PO3/SMTP服务时邮箱的授权码
spring.mail.password=xxxxxxxxxxxxxxxx
spring.mail.default-encoding=UTF-8
spring.mail.port=465
spring.mail.properties.mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory
spring.mail.properties.mail.debug=true

6.5、编写controller

/**
 * @author makeJava
 *
 * @create 2021-03-21日 19:50
 * @describes 测试qq邮件前端层
 */
@Controller
@RequestBody
@Slf4j
@Api(tags="qq邮件前端层")
public class EmailController {
    @Autowired
    JavaMailSender mailSender;//注入QQ发送邮件的bean
    //定义发送的内容 我这里发送一张图片 需要html标签
    /**
     * 查询所有数据
     *
     * @param goodTestDTO 查询实体
     * @return 所有数据
     */
    public static String body="''";
    @RequestMapping("/qqemail")
    @ApiOperation(value = "定义发送的内容")
    public Object qqemail(@RequestParam String qq,String title) {
        try {
            MimeMessage mimeMessage = this.mailSender.createMimeMessage();
            MimeMessageHelper message = new MimeMessageHelper(mimeMessage);
            message.setFrom("******@qq.com");//设置发件qq邮箱
            qq+="@qq.com";                    //补全地址
            message.setTo(qq);                //设置收件人
            message.setSubject(title);    //设置标题
            message.setText(body,true);      //第二个参数true表示使用HTML语言来编写邮件
//            FileSystemResource file = new FileSystemResource(
//            File file = new File("图片路径");
//            helper.addAttachment("图片.jpg", file);//添加带附件的邮件
//            helper.addInline("picture",file);//添加带静态资源的邮件
            this.mailSender.send(mimeMessage);
            return "发送成功";
        } catch (Exception ex) {
            ex.printStackTrace();
            return "发送成功";
        }
    }
}

6.6、编写前端页面

 




    
    QQ邮件发送


7、启动运行 浏览器输入 localhost:8080/qqEmail.

输入qq号 和标题 点击发送

已收到发送来的图片

测试成功!

以上便是关于SpringBoot整合QQ邮件发送相关内容啦,若想了解更多技术干货可联系知了小姐姐哦~

SpringBoot

上一篇:Java用poi导入导出Excel

下一篇:百度地图接口实现添加坐标点和路线

相关内容

SpringBoot整合富...
SpringBoot整合富文本编辑器
2024-07-09 11:12:24
SpringBoot整合D...
1、Druid简介 Druid是阿里巴巴开发的号称为监控而生的数据...
2024-07-09 11:12:24
SpringBoot整合Q...
前言 邮件服务是我们工作中常用的服务之一,作用是非常的多,对外可以...
2024-07-09 11:12:24
MybatisPlus介绍...
MybatisPlus在Mybatis的基础上只做增强,不做改变,...
2024-07-09 11:12:24
SpringBoot 整合...
Elasticsearch可以作为一个大型分布式集群(数百台服务器...
2024-07-09 11:12:24
SpringBoot整合C...
1. 基本结构 使用Captcha生成验证码, 利用Redis存...
2024-07-09 11:12:24

热门资讯

就业课程介绍(Java+前端+... Java+大数据,前端全栈,信息安全
关于我们 请输入文章描述
0基础转行信安,他如何做到月薪... 转行并非简单的换份工作,而是我们在职场进行自我认同、重塑身份的一个过程。今天知了小姐姐为大家介绍一位...
【前端每日一题】什么是BFC?... 秋招马上就要开始了,小伙伴们最近在准备面试的东西没呢,知了姐今天将蛋糕哥整理的前端面试题共享出来,同...
cisp考试费用多少?cisp...   随着网络技术的快速发展,网络安全问题变得越来越重要。那么,CISP考试费用多少?CISP报名条件...
img标签的onerror事件... 1.img 标签除了 onerror 属性外,还有其他获取管理员路径的办法吗? src 指定一个远程...
pythone 文件和数据格式... 关于 Python 对文件的处理,以下选项中描述错误的是
网络安全运维岗面试题及答案详解... 在当今数字化时代,网络安全运维工程师的角色变得愈发重要。为了保障网络安全,各个企业都需要拥有一支经验...
知了堂官网V3第一版内测邀请 经过几个月的加班加点,我们终于迎来了知了堂官网3.1.0版本 现正招募内测中
川农第一次线下拓展精彩瞬间 5月15日,知了堂的哥哥姐姐们携手企业拓展教练浩浩荡荡奔赴川农。
-->