优化: 电子邮箱 增加 发件邮箱别名 设置 #660

This commit is contained in:
pppscn
2026-01-25 22:18:35 +08:00
parent 892e1f20e7
commit d142ff0296
11 changed files with 53 additions and 7 deletions

View File

@@ -18,6 +18,7 @@ data class EmailSetting(
var keystore: String = "",
var password: String = "",
var encryptionProtocol: String = "Plain", //加密协议: S/MIME、OpenPGP、Plain不传证书
var fromEmailAlias: String = "", //发件邮箱别名
) : Serializable {
fun getEncryptionProtocolCheckId(): Int {

View File

@@ -212,6 +212,7 @@ class EmailFragment : BaseFragment<FragmentSendersEmailBinding?>(), View.OnClick
}
binding!!.etFromEmail.setText(settingVo.fromEmail)
binding!!.etPwd.setText(settingVo.pwd)
binding!!.etFromEmailAlias.setText(settingVo.fromEmailAlias)
binding!!.etNickname.setText(settingVo.nickname)
binding!!.etHost.setText(settingVo.host)
binding!!.etPort.setText(settingVo.port)
@@ -419,6 +420,7 @@ class EmailFragment : BaseFragment<FragmentSendersEmailBinding?>(), View.OnClick
throw Exception(getString(R.string.invalid_email_server))
}
val fromEmailAlias = binding!!.etFromEmailAlias.text.toString().trim()
val nickname = binding!!.etNickname.text.toString().trim()
val ssl = binding!!.sbSsl.isChecked
val startTls = binding!!.sbStartTls.isChecked
@@ -464,7 +466,7 @@ class EmailFragment : BaseFragment<FragmentSendersEmailBinding?>(), View.OnClick
}
return EmailSetting(mailType, fromEmail, pwd, nickname, host, port, ssl, startTls, title, recipients, "", keystore, password, encryptionProtocol)
return EmailSetting(mailType, fromEmail, pwd, nickname, host, port, ssl, startTls, title, recipients, "", keystore, password, encryptionProtocol, fromEmailAlias)
}
//recipient序号

View File

@@ -22,6 +22,7 @@ class EmailSender(
private val from: String, // 发件人邮箱
private val password: String, // 发件人邮箱密码/授权码
// 邮件参数
private val fromAlias: String, // 发件人邮箱别名
private val nickname: String, // 发件人昵称
private val subject: String, // 邮件主题
private val body: CharSequence, // 邮件正文
@@ -88,6 +89,7 @@ class EmailSender(
properties,
authenticator,
from,
fromAlias,
nickname,
subject,
html,
@@ -117,6 +119,7 @@ class EmailSender(
properties,
authenticator,
from,
fromAlias,
nickname,
subject,
html,
@@ -146,6 +149,7 @@ class EmailSender(
properties,
authenticator,
from,
fromAlias,
nickname,
subject,
html,

View File

@@ -42,6 +42,7 @@ class PgpUtils(
private val authenticator: Authenticator,
// 邮件参数
private val from: String, // 发件人邮箱
private val fromAlias: String, // 发件人邮箱别名
private val nickname: String, // 发件人昵称
private val subject: String, // 邮件主题
private val body: String, // 邮件正文
@@ -149,14 +150,14 @@ class PgpUtils(
message.setRecipients(Message.RecipientType.BCC, bccAddress)
// 设置发件箱
when {
nickname.isEmpty() -> message.setFrom(InternetAddress(from))
nickname.isEmpty() -> message.setFrom(InternetAddress(fromAlias))
else -> try {
var name = nickname.replace(":", "-").replace("\n", "-")
name = MimeUtility.encodeText(name)
message.setFrom(InternetAddress("$name <$from>"))
message.setFrom(InternetAddress("$name <$fromAlias>"))
} catch (e: Exception) {
e.printStackTrace()
message.setFrom(InternetAddress(from))
message.setFrom(InternetAddress(fromAlias))
}
}
// 邮件主题

View File

@@ -43,6 +43,7 @@ class SmimeUtils(
private val authenticator: Authenticator,
// 邮件参数
private val from: String, // 发件人邮箱
private val fromAlias: String, // 发件人邮箱别名
private val nickname: String, // 发件人昵称
private val subject: String, // 邮件主题
private val body: String, // 邮件正文
@@ -135,14 +136,14 @@ class SmimeUtils(
message.setRecipients(Message.RecipientType.BCC, bccAddress)
// 设置发件箱
when {
nickname.isEmpty() -> message.setFrom(InternetAddress(from))
nickname.isEmpty() -> message.setFrom(InternetAddress(fromAlias))
else -> try {
var name = nickname.replace(":", "-").replace("\n", "-")
name = MimeUtility.encodeText(name)
message.setFrom(InternetAddress("$name <$from>"))
message.setFrom(InternetAddress("$name <$fromAlias>"))
} catch (e: Exception) {
e.printStackTrace()
message.setFrom(InternetAddress(from))
message.setFrom(InternetAddress(fromAlias))
}
}
// 邮件主题

View File

@@ -156,6 +156,9 @@ class EmailUtils {
val port = setting.port
val from = setting.fromEmail
val password = setting.pwd
val fromAlias = setting.fromEmailAlias.ifEmpty {
setting.fromEmail
}
val nickname = msgInfo.getTitleForSend(setting.nickname)
setting.recipients.ifEmpty {
//兼容旧的设置
@@ -297,6 +300,7 @@ class EmailUtils {
port,
from,
password,
fromAlias,
nickname,
title,
content,
@@ -323,6 +327,7 @@ class EmailUtils {
port,
from,
password,
fromAlias,
nickname,
title,
content,

View File

@@ -114,6 +114,30 @@
</LinearLayout>
<LinearLayout
style="@style/BarStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/email_from_alias"
android:textStyle="bold" />
<com.xuexiang.xui.widget.edittext.materialedittext.MaterialEditText
android:id="@+id/et_from_email_alias"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="5dp"
android:layout_weight="1"
android:hint="@string/email_from_alias_tips"
android:singleLine="true"
app:met_clearButton="true" />
</LinearLayout>
<LinearLayout
android:id="@+id/layout_sms_template_to_nickname"
style="@style/BarStyle"

View File

@@ -264,6 +264,8 @@
<string name="enable_starttls">Enable StartTLS</string>
<string name="email_account">Account</string>
<string name="email_password">Password/Auth Code</string>
<string name="email_from_alias">From Email Alias</string>
<string name="email_from_alias_tips">Opt., used to display From Address</string>
<string name="email_nickname">Nickname</string>
<string name="email_to">Recipients</string>
<string name="email_to_tips">Tip: Click to add recipients.</string>

View File

@@ -265,6 +265,8 @@
<string name="enable_starttls">开启StartTLS</string>
<string name="email_account">发件邮箱</string>
<string name="email_password">登录密码</string>
<string name="email_from_alias">发件邮箱别名</string>
<string name="email_from_alias_tips">可选, 用于显示发件人地址</string>
<string name="email_nickname">发件人昵称</string>
<string name="email_to">收件人邮箱</string>
<string name="email_to_tips">Tip: 点击按钮添加收件人邮箱</string>

View File

@@ -265,6 +265,8 @@
<string name="enable_starttls">開啟StartTLS</string>
<string name="email_account">發件郵箱</string>
<string name="email_password">登錄密碼</string>
<string name="email_from_alias">發件郵箱別名</string>
<string name="email_from_alias_tips">選填,用於顯示發件人地址</string>
<string name="email_nickname">發件人昵稱</string>
<string name="email_to">收件人郵箱</string>
<string name="email_to_tips">提示:點擊按鈕添加收件人郵箱</string>

View File

@@ -294,6 +294,8 @@
<string name="enable_starttls">开启StartTLS</string>
<string name="email_account">发件邮箱</string>
<string name="email_password">登录密码</string>
<string name="email_from_alias">发件邮箱别名</string>
<string name="email_from_alias_tips">可选, 用于显示发件人地址</string>
<string name="email_nickname">发件人昵称</string>
<string name="email_to">收件人邮箱</string>
<string name="email_to_tips">Tip: 点击按钮添加收件人邮箱</string>