From df304910408a11f0dd34a164045f041b1c16b23a Mon Sep 17 00:00:00 2001 From: gitee-bot Date: Fri, 11 Jul 2025 16:08:41 +0000 Subject: [PATCH] Update README.md --- README.md | 144 ++++++++++++++++-------------------------------------- 1 file changed, 42 insertions(+), 102 deletions(-) diff --git a/README.md b/README.md index a7dc7a0..1c4ba77 100644 --- a/README.md +++ b/README.md @@ -1,119 +1,59 @@ -# JavaMail -### 介绍 -使用JavaMail发送邮件, 支持SSL,项目分本地环境和线上环境,本地环境的网易邮箱采用 -`25端口`发送邮件(`QQ邮箱`依然是`465端口`),线上环境的邮箱采用`465端口`发送邮件。 在阿里云规定中: -> 因云虚拟主机的25端口默认封闭,需要使用SSL加密端口(通常是465端口)来对外进行发送邮件。 +该项目是一个基于Java的邮件发送服务程序,使用Spring Boot框架开发,包含了邮件发送功能以及验证码发送功能。服务中整合了Redis缓存及Swagger2接口文档,便于开发与测试。项目也实现了跨域配置以及统一的异常处理和返回结果封装。 -### 软件架构 +## 软件架构 +- 使用Spring Boot构建基础框架 +- Redis作为缓存存储验证码 +- 使用Swagger2生成API文档 +- 使用JavaMail实现邮件发送功能 +- 统一的结果返回封装类`Result` -项目采用技术: +## 项目功能 +- 发送普通邮件 +- 发送验证码邮件(支持登录和密码找回场景) -- `Maven` -- `SpringBoot` -- `JavaMail` -- `JDK1.8` -- `Lombok` -- `Swagger2-knife4j` -- `Redis` - -### 项目功能 - -- 支持QQ/网易邮箱发送邮件 -- 支持多收件人 -- 支持发送验证码【登录/密码找回】场景 - -### 安装教程 - -1. 修改`application.yml`中的邮箱配置信息,注意邮箱的密码栏填写的不是 - `邮箱密码`,而是`授权码`,获取方式如下(以网易邮箱为例): - -> 1. 登录网易邮箱,依次点击 设置>POP3/SMTP/IMAP>授权密码管理 -> 2. 设置授权码,并点击确认 -> 3. 复制授权码,并填入`application.yml`中的`from_password`栏中 -> 4. 重启项目,即可发送邮件 - -2.修改`application.yml`中的邮箱类型为对应的类型: +## 安装教程 +1. 克隆项目到本地 +2. 配置application.yml中的邮箱服务信息 +3. 安装依赖:`mvn install` +4. 运行项目:使用IDE或执行`mvn spring-boot:run` +## 邮箱类型配置 +在配置文件中指定邮箱类型: ```yaml -#邮件信息 mail: - #邮箱类型 QQ/WY【请根据类型,填写对应邮箱的账号信息】 填写如:type: QQ type: WY - type: WY -``` - -3.如果本地启动项目,修改`application.yml`中的环境配置为本地: - -```yaml -#本地配置dev,线上为prod -profiles: - active: dev -``` - -4.配置好后启动项目,可以在控制台看到如下输出,浏览器打开即可访问Swagger控制台 -> 接口文档地址:http://localhost:7777/doc.html - -### 疑难问题 - -1. 将项目部署到线上以后,即使使用了`465端口`也会出现如下报错信息: - -> Could not connect to SMTP host: smtp.163.com, port: 465 - - -经过调试,具体的报错信息为: - -```text -javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate) - -翻译后为:SSL握手异常:没有合适的协议(协议被禁用或密码套件不合适) + type: QQ # 支持QQ或WY + from_mail: your_email@qq.com + from_password: your_password ``` -2. 解决方案: 如果服务器的jdk是使用`yum`命令进行安装的话,使用如下命令进行搜索`java.security`文件: - -```shell -find /usr/lib/jvm/ -name java.security -``` - -搜索结果大概是这样的: - -```shell -[root@centos7 security]# find /usr/lib/jvm/ -name java.security -/usr/lib/jvm/java-11-openjdk-11.0.22.0.7-1.el7_9.x86_64/conf/security/java.security -[root@centos7 security]# -``` - -3. 搜索到文件后,编辑该文件,命令: - -```shell -vim /usr/lib/jvm/java-11-openjdk-11.0.22.0.7-1.el7_9.x86_64/conf/security/java.security -``` - -4. 找到如下内容(快捷定位行方式【使用英文的 冒号+行号】 如=> :740 回车即可定位): - -```text - jdk.tls.disabledAlgorithms=SSLv3, TLSv1, TLSv1.1, RC4, DES, MD5withRSA, \ - DH keySize < 1024, EC keySize < 224, 3DES_EDE_CBC, anon, NULL, \ - include jdk.disabled.namedCurves - - 将第一行注释掉,复制一行,去掉【TLSv1, TLSv1.1,】即可,如下: - - jdk.tls.disabledAlgorithms=SSLv3, RC4, DES, MD5withRSA, \ - DH keySize < 1024, EC keySize < 224, 3DES_EDE_CBC, anon, NULL, \ - include jdk.disabled.namedCurves -``` +## 邮件信息 +- 邮件服务支持参数化配置,可从配置文件读取不同环境下的邮件服务器设置 +- 支持的邮箱类型包括QQ和网易(WY),需根据类型填写账号信息 -5. 保存退出,重启服务器即可。 +## 疑难问题 +- 邮件发送失败:请检查配置文件中邮箱账号密码、邮箱类型是否正确 +- Redis连接问题:请确保Redis服务器正常运行并配置正确连接参数 -### 在线体验 +## 在线体验 +当前项目未提供在线体验地址,可本地部署后访问Swagger接口文档进行测试。 -Swagger2在线接口文档:[https://www.tannic.fun/mail/doc.html](https://www.tannic.fun/mail/doc.html) +## 技术交流 +有关技术问题可以联系作者或在Gitee仓库下提交issue。 -### 项目地址 +## 项目地址 +- Gitee: [https://gitee.com/jun-wan/java-mail](https://gitee.com/jun-wan/java-mail) -gitee地址:[https://gitee.com/jun-wan/java-mail](https://gitee.com/jun-wan/java-mail) +## 本地测试 +项目配置了Swagger2接口文档,可以通过如下地址访问文档并测试API: +- [http://localhost:8080/swagger-ui.html](http://localhost:8080/swagger-ui.html)(默认端口为8080) -### 技术交流 -如有疑问或者技术交流,或者有优化和建议及添加新的功能需求,可发在issue提出,或者发送邮件至`TanNIc1314@163.com`,将进行优化。 +## 依赖 +- Spring Boot +- Spring Data Redis +- Swagger2 +- Fastjson -如果此项目对你有帮助,请点个star,谢谢^_^! \ No newline at end of file +## 许可证 +请查看LICENSE文件获取项目许可信息。 \ No newline at end of file -- Gitee