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