diff --git a/app/src/main/java/com/idormy/sms/forwarder/entity/setting/EmailSetting.kt b/app/src/main/java/com/idormy/sms/forwarder/entity/setting/EmailSetting.kt index 56d412d1..979b21db 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/entity/setting/EmailSetting.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/entity/setting/EmailSetting.kt @@ -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 { diff --git a/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/EmailFragment.kt b/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/EmailFragment.kt index a9a8cafc..43a445ec 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/EmailFragment.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/EmailFragment.kt @@ -212,6 +212,7 @@ class EmailFragment : BaseFragment(), 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(), 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(), 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序号 diff --git a/app/src/main/java/com/idormy/sms/forwarder/utils/mail/EmailSender.kt b/app/src/main/java/com/idormy/sms/forwarder/utils/mail/EmailSender.kt index 7a52f8d5..d7e76890 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/utils/mail/EmailSender.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/utils/mail/EmailSender.kt @@ -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, diff --git a/app/src/main/java/com/idormy/sms/forwarder/utils/mail/PgpUtils.kt b/app/src/main/java/com/idormy/sms/forwarder/utils/mail/PgpUtils.kt index ba27673a..e54a6925 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/utils/mail/PgpUtils.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/utils/mail/PgpUtils.kt @@ -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)) } } // 邮件主题 diff --git a/app/src/main/java/com/idormy/sms/forwarder/utils/mail/SmimeUtils.kt b/app/src/main/java/com/idormy/sms/forwarder/utils/mail/SmimeUtils.kt index 70b9151e..3255b89d 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/utils/mail/SmimeUtils.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/utils/mail/SmimeUtils.kt @@ -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)) } } // 邮件主题 diff --git a/app/src/main/java/com/idormy/sms/forwarder/utils/sender/EmailUtils.kt b/app/src/main/java/com/idormy/sms/forwarder/utils/sender/EmailUtils.kt index 43ce1115..55077a62 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/utils/sender/EmailUtils.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/utils/sender/EmailUtils.kt @@ -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, diff --git a/app/src/main/res/layout/fragment_senders_email.xml b/app/src/main/res/layout/fragment_senders_email.xml index ce711eb7..c060d5e7 100644 --- a/app/src/main/res/layout/fragment_senders_email.xml +++ b/app/src/main/res/layout/fragment_senders_email.xml @@ -114,6 +114,30 @@ + + + + + + + + Enable StartTLS Account Password/Auth Code + From Email Alias + Opt., used to display From Address Nickname Recipients Tip: Click to add recipients. diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index 3b4d4174..a26eac2d 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -265,6 +265,8 @@ 开启StartTLS 发件邮箱 登录密码 + 发件邮箱别名 + 可选, 用于显示发件人地址 发件人昵称 收件人邮箱 Tip: 点击按钮添加收件人邮箱 diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index 65a63fb3..e43b9701 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -265,6 +265,8 @@ 開啟StartTLS 發件郵箱 登錄密碼 + 發件郵箱別名 + 選填,用於顯示發件人地址 發件人昵稱 收件人郵箱 提示:點擊按鈕添加收件人郵箱 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 5be729d2..778e168b 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -294,6 +294,8 @@ 开启StartTLS 发件邮箱 登录密码 + 发件邮箱别名 + 可选, 用于显示发件人地址 发件人昵称 收件人邮箱 Tip: 点击按钮添加收件人邮箱