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 44334a2e..64f38739 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 @@ -159,6 +159,10 @@ class EmailFragment : BaseFragment(), View.OnClick } override fun initListeners() { + binding!!.btInsertSenderToNickname.setOnClickListener(this) + binding!!.btInsertExtraToNickname.setOnClickListener(this) + binding!!.btInsertTimeToNickname.setOnClickListener(this) + binding!!.btInsertDeviceNameToNickname.setOnClickListener(this) binding!!.btInsertSender.setOnClickListener(this) binding!!.btInsertExtra.setOnClickListener(this) binding!!.btInsertTime.setOnClickListener(this) @@ -171,8 +175,25 @@ class EmailFragment : BaseFragment(), View.OnClick @SingleClick override fun onClick(v: View) { try { + val etNickname: EditText = binding!!.etNickname val etTitleTemplate: EditText = binding!!.etTitleTemplate when (v.id) { + R.id.bt_insert_sender_to_nickname -> { + CommonUtils.insertOrReplaceText2Cursor(etNickname, getString(R.string.tag_from)) + return + } + R.id.bt_insert_extra_to_nickname -> { + CommonUtils.insertOrReplaceText2Cursor(etNickname, getString(R.string.tag_card_slot)) + return + } + R.id.bt_insert_time_to_nickname -> { + CommonUtils.insertOrReplaceText2Cursor(etNickname, getString(R.string.tag_receive_time)) + return + } + R.id.bt_insert_device_name_to_nickname -> { + CommonUtils.insertOrReplaceText2Cursor(etNickname, getString(R.string.tag_device_name)) + return + } R.id.bt_insert_sender -> { CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_from)) return diff --git a/app/src/main/java/com/idormy/sms/forwarder/utils/mail/Mail.kt b/app/src/main/java/com/idormy/sms/forwarder/utils/mail/Mail.kt index 8ae7822b..a294cd8a 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/utils/mail/Mail.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/utils/mail/Mail.kt @@ -11,6 +11,7 @@ data class Mail( var mailServerHost: String = "", // 发件箱邮箱服务器地址 var mailServerPort: String = "", // 发件箱邮箱服务器端口 var fromAddress: String = "", // 发件箱 + var fromNickname: String = "", // 发件人昵称 var password: String = "", // 发件箱授权码(密码) var toAddress: ArrayList = ArrayList(), // 直接收件人邮箱 diff --git a/app/src/main/java/com/idormy/sms/forwarder/utils/mail/MailUtil.kt b/app/src/main/java/com/idormy/sms/forwarder/utils/mail/MailUtil.kt index fcdc7665..d16a376b 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/utils/mail/MailUtil.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/utils/mail/MailUtil.kt @@ -3,6 +3,8 @@ package com.idormy.sms.forwarder.utils.mail import android.text.Html import android.text.Spanned import android.util.Log +import com.xuexiang.xrouter.utils.TextUtils +import java.io.UnsupportedEncodingException import java.util.* import javax.activation.DataHandler import javax.activation.FileDataSource @@ -45,7 +47,16 @@ object MailUtil { return MimeMessage(session).apply { // 设置发件箱 - setFrom(InternetAddress(mail.fromAddress)) + if (TextUtils.isEmpty(mail.fromNickname)) { + setFrom(InternetAddress(mail.fromAddress)) + } else { + val nickname = try { + MimeUtility.encodeText(mail.fromNickname) + } catch (e: UnsupportedEncodingException) { + e.printStackTrace() + } + setFrom(InternetAddress("$nickname <${mail.fromAddress}>")) + } // 设置直接接收者收件箱 val toAddress = mail.toAddress.map { 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 ee9525bb..9185044c 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 @@ -120,6 +120,7 @@ class EmailUtils { mailServerHost = setting.host.toString() mailServerPort = setting.port.toString() fromAddress = setting.fromEmail.toString() + fromNickname = msgInfo.getTitleForSend(setting.nickname.toString()) password = setting.pwd.toString() toAddress = arrayListOf(setting.toEmail.toString()) subject = title diff --git a/app/src/main/res/layout/fragment_senders_email.xml b/app/src/main/res/layout/fragment_senders_email.xml index 56e682ce..7b9aba8a 100644 --- a/app/src/main/res/layout/fragment_senders_email.xml +++ b/app/src/main/res/layout/fragment_senders_email.xml @@ -115,26 +115,69 @@ + android:orientation="vertical"> - + android:orientation="horizontal"> + + + + + + + + + + + + + + + + + +