13.1 QQ邮箱

2024-05-04 18:44
文章标签 qq 邮箱 13.1

本文主要是介绍13.1 QQ邮箱,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1. 邮箱发送

在这里插入图片描述

2. 准备工作

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3. 整合SpringBoot

3.1 配置

依赖引入

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

application.yml

spring:mail:host: smtp.qq.comport: 587username: QQ邮箱password: 授权码default-encoding: UTF-8properties:mail:debug: truesmtp:sockFactory:class: javax.net.ssl.SSLSocketFactory

在这里插入图片描述
在这里插入图片描述

其他

邮件对象
package com.ruoyi.common.vo;import lombok.Data;/*** 邮件对象*/
@Data
public class MailMessage {//发送者private String from;//接受者private String to;//抄送人private String cc;//主题private String subject;//内容private String text;//附件private MultipartFile file;
}

3.2 发送简单邮件

创建邮箱组件

package com.ruoyi.common.component;import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.StrUtil;
import com.ruoyi.common.vo.MailMessage;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.stereotype.Component;import javax.annotation.Resource;/*** qq邮箱*/
@Component
public class MailService {@Value("${spring.mail.username}")private String mailFrom;@Resourceprivate JavaMailSender javaMailSender;/*** 发送邮件** @param from    发送者* @param to      收件人* @param cc      抄送人* @param subject 主题* @param content 内容*/public void sendSimpleMail(String from, String to, String cc, String subject, String content) {SimpleMailMessage mailMessage = new SimpleMailMessage();mailMessage.setFrom(mailFrom);mailMessage.setTo(to);mailMessage.setCc(cc);mailMessage.setSubject(subject);mailMessage.setText(content);javaMailSender.send(mailMessage);}public void sendSimpleMail(MailMessage message) {SimpleMailMessage mailMessage = new SimpleMailMessage();mailMessage.setFrom(mailFrom);String[] tos = StrUtil.splitToArray(message.getTo(), ";");mailMessage.setTo(tos);String[] ccs = StrUtil.splitToArray(message.getCc(), ";");mailMessage.setCc(ccs);mailMessage.setSubject(message.getSubject());mailMessage.setText(message.getText());javaMailSender.send(mailMessage);}
}

在这里插入图片描述

测试

控制层

    @Resourceprivate MailService mailService;/*** 发送邮件** @param user* @return*/@GetMapping("/mail")public AjaxResult mail(MailMessage mailMessage) {mailService.sendSimpleMail(mailMessage);return AjaxResult.success();}

在这里插入图片描述

在这里插入图片描述

3.3 发送带附件的邮件

邮箱组件

在这里插入图片描述

package com.ruoyi.common.component;import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.StrUtil;
import com.ruoyi.common.vo.MailMessage;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Component;import javax.annotation.Resource;
import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
import java.io.File;/*** qq邮箱*/
@Component
public class MailService {@Value("${spring.mail.username}")private String mailFrom;@Resourceprivate JavaMailSender javaMailSender;/*** 发送带附件的邮件** @param message* @param file*/public void sendAttachFileMail(MailMessage message, File file) {try {MimeMessage mimeMessage = javaMailSender.createMimeMessage();MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage, true);mimeMessageHelper.setFrom(mailFrom);String[] tos = StrUtil.splitToArray(message.getTo(), ";");mimeMessageHelper.setTo(tos);String[] ccs = StrUtil.splitToArray(message.getCc(), ";");mimeMessageHelper.setCc(ccs);mimeMessageHelper.setSubject(message.getSubject());mimeMessageHelper.setText(message.getText());mimeMessageHelper.addAttachment(file.getName(), file);javaMailSender.send(mimeMessage);} catch (MessagingException e) {throw new RuntimeException(e);}}
}

在这里插入图片描述

使用及测试

    @Resourceprivate MailService mailService;/*** 发送邮件带附件** @param mailMessage* @return*/@PostMapping("/mailFile")public AjaxResult mailFile(MailMessage mailMessage, MultipartFile multipartFile) {try {// 获取文件名String fileName = multipartFile.getOriginalFilename();// 获取文件后缀(.xml)String suffix = fileName.substring(fileName.lastIndexOf("."));File file = File.createTempFile(fileName.substring(0, fileName.lastIndexOf(".")), suffix);multipartFile.transferTo(file);mailService.sendAttachFileMail(mailMessage, file);} catch (IOException e) {throw new RuntimeException(e);}return AjaxResult.success();}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.4 发送带图片资源的邮件

在这里插入图片描述

组件

package com.ruoyi.common.component;import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.StrUtil;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.vo.MailMessage;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.core.io.FileSystemResource;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Component;
import org.springframework.web.util.HtmlUtils;import javax.annotation.Resource;
import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
import java.io.File;/*** qq邮箱*/
@Component
public class MailService {@Value("${spring.mail.username}")private String mailFrom;@Resourceprivate JavaMailSender javaMailSender;/*** 发送正文带图片的邮件** @param message*/public void sendMailWithirng(MailMessage message) {String[] srcPath = message.getSrcPath().split(",");String[] resIds = message.getResIds().split(",");if (srcPath.length != resIds.length) {throw new ServiceException("图片信息不全,发送失败!");}try {MimeMessage mimeMessage = javaMailSender.createMimeMessage();MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);helper.setFrom(mailFrom);String[] tos = StrUtil.splitToArray(message.getTo(), ";");helper.setTo(tos);String[] ccs = StrUtil.splitToArray(message.getCc(), ";");helper.setCc(ccs);helper.setSubject(message.getSubject());helper.setText(message.getText(), true);for (int i = 0; i < srcPath.length; i++) {FileSystemResource fileSystemResource = new FileSystemResource(new File(srcPath[i]));helper.addInline(resIds[i], fileSystemResource);}javaMailSender.send(mimeMessage);} catch (MessagingException e) {throw new RuntimeException(e);}}
}

在这里插入图片描述

测试

    @Resourceprivate MailService mailService;/*** 发送正文带图片的邮件** @param mailMessage* @return*/@PostMapping("/sendMailWithirng")public AjaxResult sendMailWithirng(@Validated @RequestBody MailMessage mailMessage) {mailService.sendMailWithirng(mailMessage);return AjaxResult.success();}

3.5 使用 FreeMarker 构建邮件模报

在这里插入图片描述

依赖

        <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-freemarker</artifactId></dependency>

组件

package com.ruoyi.common.component;import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.StrUtil;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.vo.MailMessage;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.core.io.FileSystemResource;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Component;
import org.springframework.web.util.HtmlUtils;import javax.annotation.Resource;
import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
import java.io.File;/*** qq邮箱*/
@Component
public class MailService {@Value("${spring.mail.username}")private String mailFrom;@Resourceprivate JavaMailSender javaMailSender;/*** 使用 FreeMarker 构建邮件模报** @param message*/public void sendHtmlMail(MailMessage message) {try {MimeMessage mimeMessage = javaMailSender.createMimeMessage();MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);helper.setFrom(mailFrom);String[] tos = StrUtil.splitToArray(message.getTo(), ";");helper.setTo(tos);String[] ccs = StrUtil.splitToArray(message.getCc(), ";");helper.setCc(ccs);helper.setSubject(message.getSubject());helper.setText(message.getText(), true);javaMailSender.send(mimeMessage);} catch (MessagingException e) {throw new RuntimeException(e);}}
}

邮件模板

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.6 使用 Thymeleaf 构建邮件模板

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

*************************************************

这篇关于13.1 QQ邮箱的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/959858

相关文章

gitlab安装及邮箱配置和常用使用方式

《gitlab安装及邮箱配置和常用使用方式》:本文主要介绍gitlab安装及邮箱配置和常用使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1.安装GitLab2.配置GitLab邮件服务3.GitLab的账号注册邮箱验证及其分组4.gitlab分支和标签的

Git如何修改已提交人的用户名和邮箱

《Git如何修改已提交人的用户名和邮箱》文章介绍了如何修改Git已提交人的用户名和邮箱,包括注意事项和具体步骤,确保操作正确无误... 目录git修改已提交人的用户名和邮箱前言第一步第二步总结git修改已提交人的用户名和邮箱前言需注意以下两点内容:需要在顶层目录下(php就是 .git 文件夹所在的目

使用Java发送邮件到QQ邮箱的完整指南

《使用Java发送邮件到QQ邮箱的完整指南》在现代软件开发中,邮件发送功能是一个常见的需求,无论是用户注册验证、密码重置,还是系统通知,邮件都是一种重要的通信方式,本文将详细介绍如何使用Java编写程... 目录引言1. 准备工作1.1 获取QQ邮箱的SMTP授权码1.2 添加JavaMail依赖2. 实现

Python基于火山引擎豆包大模型搭建QQ机器人详细教程(2024年最新)

《Python基于火山引擎豆包大模型搭建QQ机器人详细教程(2024年最新)》:本文主要介绍Python基于火山引擎豆包大模型搭建QQ机器人详细的相关资料,包括开通模型、配置APIKEY鉴权和SD... 目录豆包大模型概述开通模型付费安装 SDK 环境配置 API KEY 鉴权Ark 模型接口Prompt

P11019 「LAOI-6」[太阳]] 请使用最新版手机 QQ 体验新功能

English statement. You must submit your code at the Chinese version of the statement. 题目描述 你的 QQ 收到了一条新消息!但是你很生气,因为你看不到别人在手机 QQ 上发送的超级表情。 消息形如一个字符串 S,包含且仅包含一个超级表情。具体地,我们将 S 的拼音采用驼峰命名法,可以化为如下形

spring项目使用邮箱验证码校验

本项目采用免费QQ邮箱验证码方式进行登录安全的校验。 前期工作 申请邮箱安全授权码 打开QQ邮箱官网点击设置 进入设置页面后点击账户按钮  进入账户后一直往下拉页面找到POP3服务栏,然后点击管理服务(如果没有开启服务需要先开启服务,按照邮箱提示操作即可) 进入管理服务页面后如果没有授权码,点击生成授权码,如果有即可进入授权码管理页面查看。 授权码过一段时间会自动过期,需要重

git查看、修改、删除属性,配置提交commit用户名和邮箱

1. 查看 查看所有 git config --list git config --worktree --list git config --local --list git config --global --list git config --system --list 2. 设置 git config --local user.n

QQ通讯协议

不管UDP还是TCP,最终登陆成功之后,QQ都会有一个TCP连接来保持在线状态。这个TCP连接的远程端口一般是80,采用UDP方式登陆的时候,端口是8000。因此,假如你所在的网络开放了80端口(80端口是最常用端口。。就是通常访问Web的端口,禁掉它的话,你的网络对你来说价值已经不大了),但没有屏蔽腾讯的服务器IP,恭喜你,你是可以登陆成功QQ的。 二、聊天消息通信。       采用UDP协

前端发送邮件至指定邮箱的方式方法有哪些?

前端发送邮件的教程指南?前端静态页面怎么发送邮件? 无论是用户反馈、订阅通知还是其他形式的通信,前端发送邮件的功能都显得尤为重要。AokSend将详细介绍几种常见的前端发送邮件的方法,帮助开发者更好地实现这一功能。 前端发送邮件:使用表单 开发者可以在网页中嵌入一个表单,用户填写相关信息后,点击提交按钮,表单数据会被发送到服务器端,再由服务器端处理并发送邮件。这种方式虽然简单,但需要后端

Postfix权威指南-阅读笔记-架设和维护邮箱服务器

PostFix权威指南 目录 文章目录 适用人群前言1. 简介Internet E-mail传递流程 2.基础概念在线说明书模拟SMTP对话常见响应状态码 4.基本的配置与管理默认安装目录启动postfix两件准备工作 配置文件重新加载配置变量对外统一邮箱创建查询数据库数据库格式 别名文件重要考虑事项转发控制限制转发访问SMTP身份验证管理日志记录启动、关闭和重新加载开机时自动启动post