diff --git a/aes/build.properties b/aes/build.properties
index be636bd..b94bad2 100644
--- a/aes/build.properties
+++ b/aes/build.properties
@@ -1,8 +1,8 @@
#Created by .winboll/winboll_app_build.gradle
-#Fri Jul 17 15:03:05 HKT 2026
-stageCount=20
+#Fri Jul 17 19:18:48 HKT 2026
+stageCount=21
libraryProject=libaes
baseVersion=15.20
-publishVersion=15.20.19
+publishVersion=15.20.20
buildCount=0
-baseBetaVersion=15.20.20
+baseBetaVersion=15.20.21
diff --git a/libaes/build.properties b/libaes/build.properties
index be636bd..b94bad2 100644
--- a/libaes/build.properties
+++ b/libaes/build.properties
@@ -1,8 +1,8 @@
#Created by .winboll/winboll_app_build.gradle
-#Fri Jul 17 15:03:05 HKT 2026
-stageCount=20
+#Fri Jul 17 19:18:48 HKT 2026
+stageCount=21
libraryProject=libaes
baseVersion=15.20
-publishVersion=15.20.19
+publishVersion=15.20.20
buildCount=0
-baseBetaVersion=15.20.20
+baseBetaVersion=15.20.21
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 12d57d0..662a242 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
@@ -33,6 +33,7 @@ public class APPMSGMailUtils {
private static final String KEY_SMTP_SENDER = "smtp_sender";
private static final String KEY_SMTP_AUTH_CODE = "smtp_auth_code";
private static final String KEY_SMTP_RECIPIENT = "smtp_recipient";
+ private static final String KEY_SMTP_ENABLED = "smtp_enabled";
private static final String DEFAULT_SMTP_SERVER = "smtp.qq.com";
private static final String DEFAULT_SMTP_PORT = "465";
@@ -81,11 +82,31 @@ public class APPMSGMailUtils {
return sp.getString(KEY_SMTP_RECIPIENT, "");
}
+ //
+ // SMTP邮件发送开关
+ //
+ public static void setEnabled(Context context, boolean enabled) {
+ SharedPreferences sp = context.getSharedPreferences(SP_NAME, Context.MODE_PRIVATE);
+ SharedPreferences.Editor editor = sp.edit();
+ editor.putBoolean(KEY_SMTP_ENABLED, enabled);
+ editor.apply();
+ LogUtils.d(TAG, "setEnabled: " + enabled);
+ }
+
+ public static boolean isEnabled(Context context) {
+ SharedPreferences sp = context.getSharedPreferences(SP_NAME, Context.MODE_PRIVATE);
+ return sp.getBoolean(KEY_SMTP_ENABLED, false);
+ }
+
//
// 发送邮件(异步,在后台线程执行)
//
public static void sendMail(final Context context, final String subject,
final String content, final String recipients) {
+ if (!isEnabled(context)) {
+ LogUtils.d(TAG, "sendMail: SMTP邮件发送已禁用,跳过操作");
+ return;
+ }
final String server = getServer(context);
final String port = getPort(context);
final String sender = getSender(context);
diff --git a/libaes/src/main/java/cc/winboll/studio/libaes/views/SMTPConfigView.java b/libaes/src/main/java/cc/winboll/studio/libaes/views/SMTPConfigView.java
index f39c6a9..485c3a3 100644
--- a/libaes/src/main/java/cc/winboll/studio/libaes/views/SMTPConfigView.java
+++ b/libaes/src/main/java/cc/winboll/studio/libaes/views/SMTPConfigView.java
@@ -3,6 +3,8 @@ package cc.winboll.studio.libaes.views;
import android.content.Context;
import android.util.AttributeSet;
import android.view.View;
+import android.widget.CheckBox;
+import android.widget.CompoundButton;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.Toast;
@@ -24,6 +26,7 @@ public class SMTPConfigView extends LinearLayout {
private EditText mEtSender;
private EditText mEtAuthCode;
private EditText mEtRecipient;
+ private CheckBox mCbEnabled;
public SMTPConfigView(Context context) {
super(context);
@@ -44,6 +47,14 @@ public class SMTPConfigView extends LinearLayout {
mEtSender = (EditText) findViewById(R.id.et_smtp_sender);
mEtAuthCode = (EditText) findViewById(R.id.et_smtp_auth_code);
mEtRecipient = (EditText) findViewById(R.id.et_smtp_recipient);
+ mCbEnabled = (CheckBox) findViewById(R.id.cb_smtp_enabled);
+
+ mCbEnabled.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
+ @Override
+ public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
+ APPMSGMailUtils.setEnabled(getContext(), isChecked);
+ }
+ });
// 加载已保存的配置
loadConfig();
@@ -80,6 +91,7 @@ public class SMTPConfigView extends LinearLayout {
mEtSender.setText(APPMSGMailUtils.getSender(context));
mEtAuthCode.setText(APPMSGMailUtils.getAuthCode(context));
mEtRecipient.setText(APPMSGMailUtils.getRecipient(context));
+ mCbEnabled.setChecked(APPMSGMailUtils.isEnabled(context));
LogUtils.d(TAG, "loadConfig: SMTP配置已加载");
}
diff --git a/libaes/src/main/res/layout/view_smtp_config.xml b/libaes/src/main/res/layout/view_smtp_config.xml
index c9326f8..e00119b 100644
--- a/libaes/src/main/res/layout/view_smtp_config.xml
+++ b/libaes/src/main/res/layout/view_smtp_config.xml
@@ -85,6 +85,14 @@
android:hint="recipient@example.com"
android:inputType="textEmailAddress"/>
+
+