From 1bd0b541ff0a503007d02465bec828a52aca1142 Mon Sep 17 00:00:00 2001
From: peter <14100000001@qq.com>
Date: Fri, 31 Oct 2025 19:26:20 +0800
Subject: [PATCH] 邮箱验证码
---
src/main/resources/application.properties | 2
src/main/java/com/nq/controller/UserApiController.java | 6 +
src/main/java/com/nq/utils/email/GmailSender.java | 116 ++++++++++++++++++++++++++++++++++++++
src/main/resources/application.yml | 8 +-
4 files changed, 126 insertions(+), 6 deletions(-)
diff --git a/src/main/java/com/nq/controller/UserApiController.java b/src/main/java/com/nq/controller/UserApiController.java
index caabc18..c26bf63 100644
--- a/src/main/java/com/nq/controller/UserApiController.java
+++ b/src/main/java/com/nq/controller/UserApiController.java
@@ -46,6 +46,7 @@
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@@ -98,7 +99,10 @@
String code = GmailSender.generateSecureSixDigitCode();
String keys = "emailCode:" + email;
RedisShardedPoolUtils.setEx(keys, code, 60);
- GmailSender.sendEmail(email,"verification code",code);
+ //谷歌
+// GmailSender.sendEmail(email,"verification code",code);
+ //阿里邮箱
+ GmailSender.sendEmailAli(email,"verification code",code);
return ServerResponse.createBySuccess("发送成功!",request);
}catch (Exception e){
e.printStackTrace();
diff --git a/src/main/java/com/nq/utils/email/GmailSender.java b/src/main/java/com/nq/utils/email/GmailSender.java
index ccc883d..c5bbe27 100644
--- a/src/main/java/com/nq/utils/email/GmailSender.java
+++ b/src/main/java/com/nq/utils/email/GmailSender.java
@@ -1,9 +1,26 @@
package com.nq.utils.email;
+import org.apache.http.HttpEntity;
+import org.apache.http.HttpResponse;
+import org.apache.http.NameValuePair;
+import org.apache.http.client.entity.UrlEncodedFormEntity;
+import org.apache.http.client.methods.HttpPost;
+import org.apache.http.impl.client.CloseableHttpClient;
+import org.apache.http.impl.client.HttpClients;
+import org.apache.http.message.BasicNameValuePair;
+import org.apache.http.util.EntityUtils;
+import org.springframework.mail.SimpleMailMessage;
+import org.springframework.mail.javamail.JavaMailSender;
+import org.springframework.mail.javamail.JavaMailSenderImpl;
+import org.springframework.mail.javamail.MimeMessageHelper;
+
import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
+import java.io.IOException;
import java.security.SecureRandom;
+import java.util.ArrayList;
+import java.util.List;
import java.util.Properties;
/**
@@ -13,6 +30,105 @@
**/
public class GmailSender {
+ private static final String API_URL = "https://www.aoksend.com/index/api/send_email";
+
+ public static void aokSend(String to, String subject, String body) {
+ // 创建一个CloseableHttpClient实例
+ try (CloseableHttpClient httpClient = HttpClients.createDefault()) {
+ // 创建一个HttpPost实例
+ HttpPost httpPost = new HttpPost(API_URL);
+ // 创建一个参数列表
+ List<NameValuePair> params = new ArrayList<>();
+ params.add(new BasicNameValuePair("app_key", ""));
+ params.add(new BasicNameValuePair("template_id", ""));
+ params.add(new BasicNameValuePair("to", ""));
+ params.add(new BasicNameValuePair("reply_to", ""));
+ params.add(new BasicNameValuePair("alias", ""));
+ params.add(new BasicNameValuePair("data", "{\"name\":\"张三\",\"address\":\"深圳\"}"));
+ UrlEncodedFormEntity formEntity = new UrlEncodedFormEntity(params, "UTF-8");
+ httpPost.setEntity(formEntity);
+ // 发送请求并获取响应
+ HttpResponse response = httpClient.execute(httpPost);
+ // 读取响应内容
+ HttpEntity responseEntity = response.getEntity();
+ if (responseEntity != null) {
+ String responseBody = EntityUtils.toString(responseEntity, "UTF-8");
+ System.out.println("Response: " + responseBody);
+ }
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+
+ public static void sendEmailAli(String to, String subject, String body) {
+ // 初始化邮件发送器
+ JavaMailSenderImpl mailSender = new JavaMailSenderImpl();
+
+ // 设置邮箱服务器配置
+ mailSender.setHost("smtp.mxhichina.com");
+ mailSender.setPort(465);
+ mailSender.setUsername("ipcptvzpd@candyyun.com");
+ mailSender.setPassword("hdj$KDL#994");
+ mailSender.setProtocol("smtp");
+ mailSender.setDefaultEncoding("UTF-8");
+
+ // 设置JavaMail属性
+ Properties props = mailSender.getJavaMailProperties();
+ props.put("mail.smtp.auth", "true");
+ props.put("mail.smtp.ssl.enable", "true");
+ // 移除重复的socketFactory配置,避免冲突
+
+ try {
+ SimpleMailMessage message = new SimpleMailMessage();
+ message.setFrom("ipcptvzpd@candyyun.com");
+ message.setTo(to);
+ message.setSubject(subject);
+ message.setText(body);
+
+ mailSender.send(message);
+ System.out.println("验证码邮件发送成功!");
+ } catch (Exception e) {
+ e.printStackTrace();
+ throw new RuntimeException("邮件发送失败", e);
+ }
+ }
+// public static void sendEmailAli(String to, String subject, String body) {
+// // 初始化邮件发送器
+// JavaMailSenderImpl mailSender = new JavaMailSenderImpl();
+//
+// // 设置邮箱服务器配置
+// mailSender.setHost("smtp.mxhichina.com"); // 阿里企业邮箱SMTP服务器
+// mailSender.setPort(465); // SSL端口
+// mailSender.setUsername("ipcptvzpd@candyyun.com"); // 发件邮箱
+// mailSender.setPassword("g83r022ll6"); // 邮箱密码或授权码
+// mailSender.setProtocol("smtp");
+// mailSender.setDefaultEncoding("UTF-8");
+//
+// // 设置JavaMail属性
+// Properties props = mailSender.getJavaMailProperties();
+// props.put("mail.smtp.auth", "true");
+// props.put("mail.smtp.ssl.enable", "true");
+// props.put("mail.smtp.socketFactory.port", "465");
+// props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
+// props.put("mail.smtp.socketFactory.fallback", "false");
+//
+// try {
+// SimpleMailMessage message = new SimpleMailMessage();
+// message.setFrom("ipcptvzpd@candyyun.com"); // 发件人
+// message.setTo(to);
+// message.setSubject(subject);
+// message.setText(body);
+//
+// mailSender.send(message);
+// System.out.println("验证码邮件发送成功!");
+// } catch (Exception e) {
+// e.printStackTrace();
+// throw new RuntimeException("邮件发送失败", e);
+// }
+// }
+
+
+
public static void sendEmail(String to, String subject, String body) {
// 发件人Gmail地址
String from = "coinzne.com@gmail.com";
diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties
index 662403d..a3665b9 100644
--- a/src/main/resources/application.properties
+++ b/src/main/resources/application.properties
@@ -21,7 +21,7 @@
redis1.ip=localhost
#redis1.port=6380
-redis1.port=6380
+redis1.port=6379
redis1.pwd=
redis1.timeout=10000
redis.max.total=50
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 6fc49ae..c451567 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -106,7 +106,7 @@
# 地址
host: localhost
# 端口,默认为6379
- port: 6380
+ port: 6379
# port: 6380
# 数据库索引
database: 2
@@ -127,11 +127,11 @@
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driverClassName: com.mysql.cj.jdbc.Driver
- url: jdbc:mysql://127.0.0.1:6306/us?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
+# url: jdbc:mysql://127.0.0.1:6306/us?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
# url: jdbc:mysql://127.0.0.1:6306us?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
-# url: jdbc:mysql://127.0.0.1:3306/trading_order_1024?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
+ url: jdbc:mysql://127.0.0.1:3306/trading_order_1024?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username: root
- password: Err;2[eoGFUriwdgr
+ password: 123456
druid:
# 初始连接数
initialSize: 5
--
Gitblit v1.9.3