<libaes><aes>feat: 新增SMTP邮件发送功能(QQ邮箱兼容)

libaes模块:
- 新增 APPMSGMailUtils 邮件发送工具类,基于JavaMail SMTP协议
- 新增 SMTPConfigView 邮件配置视图控件,支持服务器/端口/发件人/授权码/收件人配置
- 新增 view_smtp_config.xml 布局文件
- 添加 android-mail:1.6.7 / android-activation:1.6.7 依赖(替代javax.mail解决Android AWT兼容问题)
- 添加 INTERNET / ACCESS_NETWORK_STATE 权限

aes模块:
- 新增 SMTPSettingsActivity 邮件设置页面
- 新增 activity_smtp_settings.xml 布局文件
- MainActivity toolbar菜单添加"SMTP设置"入口
- AndroidManifest.xml 注册 SMTPSettingsActivity
- build.gradle 添加 packagingOptions 解决META-INF重复文件冲突
This commit is contained in:
BigPickle
2026-07-17 10:39:59 +08:00
parent 6657b39823
commit f91b5b1b6a
13 changed files with 461 additions and 4 deletions
@@ -183,6 +183,8 @@ public class MainActivity extends DrawerFragmentActivity {
} else if (nItemId == R.id.item_settings) {
Intent intent = new Intent(this, SettingsActivity.class);
startActivity(intent);
} else if (nItemId == R.id.item_smtp_settings) {
WinBoLLActivityManager.getInstance().startWinBoLLActivity(this, SMTPSettingsActivity.class);
} else if (nItemId == R.id.item_about) {
// Intent intent = new Intent(this, AboutActivity.class);
// startActivity(intent);
@@ -0,0 +1,51 @@
package cc.winboll.studio.aes;
import android.os.Bundle;
import android.view.View;
import androidx.appcompat.widget.Toolbar;
import cc.winboll.studio.libappbase.LogUtils;
/**
* @Author ZhanGSKen<zhangsken@qq.com>
* @Date 2026/07/16
* @Describe SMTP邮件设置窗口,使用SMTPConfigView控件进行配置操作
*/
public class SMTPSettingsActivity extends BaseWinBoLLActivity {
public static final String TAG = "SMTPSettingsActivity";
private Toolbar mToolbar;
@Override
public String getTag() {
return TAG;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_smtp_settings);
initToolbar();
}
private void initToolbar() {
LogUtils.d(TAG, "initToolbar() 开始初始化");
mToolbar = findViewById(R.id.toolbar);
if (mToolbar == null) {
LogUtils.e(TAG, "initToolbar() | Toolbar未找到");
return;
}
setSupportActionBar(mToolbar);
mToolbar.setSubtitle(getTag());
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
mToolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
LogUtils.d(TAG, "导航栏 点击返回按钮");
finish();
}
});
LogUtils.d(TAG, "initToolbar() 配置完成");
}
}