From 7c51d5b2e456f8aeac92105e1cc4196e79f2f184 Mon Sep 17 00:00:00 2001 From: qinglong Date: Sat, 18 Jul 2026 22:00:02 +0800 Subject: [PATCH] =?UTF-8?q?=E5=90=88=E5=B9=B6=20AES=20=E9=A1=B9=E7=9B=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- aes/build.properties | 8 +-- aes/proguard-rules.pro | 10 ++++ libaes/build.properties | 8 +-- libaes/proguard-rules.pro | 7 +++ .../studio/libaes/utils/APPMSGMailUtils.java | 50 ++++++++++++++++--- 5 files changed, 67 insertions(+), 16 deletions(-) diff --git a/aes/build.properties b/aes/build.properties index 7fd6e19..e0cac62 100644 --- a/aes/build.properties +++ b/aes/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Fri Jul 17 19:19:40 HKT 2026 -stageCount=21 +#Sat Jul 18 03:56:58 HKT 2026 +stageCount=22 libraryProject=libaes baseVersion=15.20 -publishVersion=15.20.20 +publishVersion=15.20.21 buildCount=0 -baseBetaVersion=15.20.21 +baseBetaVersion=15.20.22 diff --git a/aes/proguard-rules.pro b/aes/proguard-rules.pro index a18de74..cb2d95d 100644 --- a/aes/proguard-rules.pro +++ b/aes/proguard-rules.pro @@ -120,6 +120,16 @@ # JSch SSH组件 -keep class com.jcraft.jsch.** { *; } +# JavaMail SMTP(邮件发送核心库,Release编译必须保留) +-dontwarn javax.mail.** +-keep class javax.mail.** { *; } +-keep class javax.mail.internet.** { *; } +-dontwarn javax.activation.** +-keep class javax.activation.** { *; } +-dontwarn com.sun.mail.** +-keep class com.sun.mail.** { *; } +-keepclassmembers class * extends javax.mail.Authenticator { *; } + # AndroidX 基础组件 -keep class androidx.appcompat.** { *; } -keep interface androidx.appcompat.** { *; } diff --git a/libaes/build.properties b/libaes/build.properties index b94bad2..b16a72b 100644 --- a/libaes/build.properties +++ b/libaes/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Fri Jul 17 19:18:48 HKT 2026 -stageCount=21 +#Sat Jul 18 03:56:46 HKT 2026 +stageCount=22 libraryProject=libaes baseVersion=15.20 -publishVersion=15.20.20 +publishVersion=15.20.21 buildCount=0 -baseBetaVersion=15.20.21 +baseBetaVersion=15.20.22 diff --git a/libaes/proguard-rules.pro b/libaes/proguard-rules.pro index 536058a..f610377 100644 --- a/libaes/proguard-rules.pro +++ b/libaes/proguard-rules.pro @@ -9,6 +9,13 @@ # Add any project specific keep options here: +# JavaMail SMTP(邮件发送核心库,Release编译必须保留) +-dontwarn javax.mail.** +-keep class javax.mail.** { *; } +-keep class javax.mail.internet.** { *; } +-dontwarn com.sun.mail.** +-keep class com.sun.mail.** { *; } + # If your project uses WebView with JS, uncomment the following # and specify the fully qualified class name to the JavaScript interface # class: diff --git a/libaes/src/main/java/cc/winboll/studio/libaes/utils/APPMSGMailUtils.java b/libaes/src/main/java/cc/winboll/studio/libaes/utils/APPMSGMailUtils.java index 662a242..93c75f6 100644 --- a/libaes/src/main/java/cc/winboll/studio/libaes/utils/APPMSGMailUtils.java +++ b/libaes/src/main/java/cc/winboll/studio/libaes/utils/APPMSGMailUtils.java @@ -43,6 +43,10 @@ public class APPMSGMailUtils { // public static void saveConfig(Context context, String server, String port, String sender, String authCode, String recipient) { + LogUtils.d(TAG, "saveConfig: 开始保存SMTP配置"); + LogUtils.d(TAG, "saveConfig: server=" + server + ", port=" + port); + LogUtils.d(TAG, "saveConfig: sender=" + sender + ", authCode长度=" + (authCode != null ? authCode.length() : 0)); + LogUtils.d(TAG, "saveConfig: recipient=" + recipient); SharedPreferences sp = context.getSharedPreferences(SP_NAME, Context.MODE_PRIVATE); SharedPreferences.Editor editor = sp.edit(); editor.putString(KEY_SMTP_SERVER, server); @@ -51,7 +55,7 @@ public class APPMSGMailUtils { editor.putString(KEY_SMTP_AUTH_CODE, authCode); editor.putString(KEY_SMTP_RECIPIENT, recipient); editor.apply(); - LogUtils.d(TAG, "saveConfig: SMTP配置已保存"); + LogUtils.d(TAG, "saveConfig: SMTP配置已保存完成"); } // @@ -59,27 +63,37 @@ public class APPMSGMailUtils { // public static String getServer(Context context) { SharedPreferences sp = context.getSharedPreferences(SP_NAME, Context.MODE_PRIVATE); - return sp.getString(KEY_SMTP_SERVER, DEFAULT_SMTP_SERVER); + String value = sp.getString(KEY_SMTP_SERVER, DEFAULT_SMTP_SERVER); + LogUtils.d(TAG, "getServer: " + value); + return value; } public static String getPort(Context context) { SharedPreferences sp = context.getSharedPreferences(SP_NAME, Context.MODE_PRIVATE); - return sp.getString(KEY_SMTP_PORT, DEFAULT_SMTP_PORT); + String value = sp.getString(KEY_SMTP_PORT, DEFAULT_SMTP_PORT); + LogUtils.d(TAG, "getPort: " + value); + return value; } public static String getSender(Context context) { SharedPreferences sp = context.getSharedPreferences(SP_NAME, Context.MODE_PRIVATE); - return sp.getString(KEY_SMTP_SENDER, ""); + String value = sp.getString(KEY_SMTP_SENDER, ""); + LogUtils.d(TAG, "getSender: " + value); + return value; } public static String getAuthCode(Context context) { SharedPreferences sp = context.getSharedPreferences(SP_NAME, Context.MODE_PRIVATE); - return sp.getString(KEY_SMTP_AUTH_CODE, ""); + String value = sp.getString(KEY_SMTP_AUTH_CODE, ""); + LogUtils.d(TAG, "getAuthCode: 长度=" + (value != null ? value.length() : 0)); + return value; } public static String getRecipient(Context context) { SharedPreferences sp = context.getSharedPreferences(SP_NAME, Context.MODE_PRIVATE); - return sp.getString(KEY_SMTP_RECIPIENT, ""); + String value = sp.getString(KEY_SMTP_RECIPIENT, ""); + LogUtils.d(TAG, "getRecipient: " + value); + return value; } // @@ -103,7 +117,13 @@ public class APPMSGMailUtils { // public static void sendMail(final Context context, final String subject, final String content, final String recipients) { - if (!isEnabled(context)) { + LogUtils.d(TAG, "sendMail: ====== 开始调用sendMail ======"); + LogUtils.d(TAG, "sendMail: subject=" + subject); + LogUtils.d(TAG, "sendMail: content长度=" + (content != null ? content.length() : 0)); + LogUtils.d(TAG, "sendMail: recipients=" + recipients); + boolean enabled = isEnabled(context); + LogUtils.d(TAG, "sendMail: isEnabled=" + enabled); + if (!enabled) { LogUtils.d(TAG, "sendMail: SMTP邮件发送已禁用,跳过操作"); return; } @@ -111,26 +131,35 @@ public class APPMSGMailUtils { final String port = getPort(context); final String sender = getSender(context); final String authCode = getAuthCode(context); + LogUtils.d(TAG, "sendMail: server=" + server + ", port=" + port); + LogUtils.d(TAG, "sendMail: sender=" + sender + ", authCode长度=" + (authCode != null ? authCode.length() : 0)); + LogUtils.d(TAG, "sendMail: recipients=" + recipients); if (sender == null || sender.length() == 0) { + LogUtils.w(TAG, "sendMail: 请先配置发件人邮箱"); showToast(context, "请先配置发件人邮箱"); return; } if (authCode == null || authCode.length() == 0) { + LogUtils.w(TAG, "sendMail: 请先配置邮箱授权码"); showToast(context, "请先配置邮箱授权码"); return; } if (recipients == null || recipients.length() == 0) { + LogUtils.w(TAG, "sendMail: 收件人不能为空"); showToast(context, "收件人不能为空"); return; } + LogUtils.d(TAG, "sendMail: 参数校验通过,准备启动发送线程"); showToast(context, "正在发送邮件..."); new Thread(new Runnable() { @Override public void run() { + LogUtils.d(TAG, "sendMail: 发送线程已启动"); try { + LogUtils.d(TAG, "sendMail: 创建邮件属性配置"); Properties props = new Properties(); props.put("mail.smtp.host", server); props.put("mail.smtp.port", port); @@ -138,13 +167,16 @@ public class APPMSGMailUtils { props.put("mail.smtp.socketFactory.port", port); props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory"); + LogUtils.d(TAG, "sendMail: 创建邮件会话"); Session session = Session.getInstance(props, new Authenticator() { @Override protected PasswordAuthentication getPasswordAuthentication() { + LogUtils.d(TAG, "sendMail: 身份验证回调触发"); return new PasswordAuthentication(sender, authCode); } }); + LogUtils.d(TAG, "sendMail: 创建MimeMessage"); MimeMessage message = new MimeMessage(session); message.setFrom(new InternetAddress(sender)); message.setRecipients(Message.RecipientType.TO, @@ -152,16 +184,18 @@ public class APPMSGMailUtils { message.setSubject(subject); message.setText(content); + LogUtils.d(TAG, "sendMail: 调用Transport.send开始发送"); Transport.send(message); LogUtils.d(TAG, "sendMail: 邮件发送成功"); showToast(context, "邮件发送成功"); } catch (Exception e) { - LogUtils.e(TAG, "sendMail: 邮件发送失败", e); + LogUtils.e(TAG, "sendMail: 邮件发送异常", e); showToast(context, "邮件发送失败: " + e.getMessage()); } } }).start(); + LogUtils.d(TAG, "sendMail: ====== sendMail调用结束 ======"); } //