我有一个使用 Persits Mail 的系统。 Accualy 所有邮件都正确发送,但只有 android native 邮件应用程序未在主题和发件人文本中显示土耳其语字符。我在下面分享图片和邮件发送代码。
邮件发送功能
Sub sendIt(Mesaj,Subjectt,Senderr,sMail,mHost,mFrom,mUsername,mPasword)
Posta = trim(Posta)
Set Mail = Server.CreateObject("Persits.MailSender")
Mail.Charset = "ISO-8859-9"
Mail.Host = mHost
Mail.From = mFrom
Mail.Username = mUsername
Mail.Password = mPasword
Mail.FromName = Senderr
Mail.AddAddress sMail
Mail.Subject = Subject
Mail.IsHTML = True
Mail.Body = Mesaj
Mail.Send
End Sub
最佳答案
要在 header (收件人、发件人、主题和其他标准和自定义 header )中发送的电子邮件字段在包含非 ASCII 字符时必须进行编码。
AspEmail 有一个辅助方法 EncodeHeader编码这样的领域,所以你可以使用它。
在给定的示例代码中,必须对 FromName
和 Subject
进行编码。
Sub sendIt(Mesaj,Subjectt,Senderr,sMail,mHost,mFrom,mUsername,mPasword)
Posta = trim(Posta)
Set Mail = Server.CreateObject("Persits.MailSender")
Mail.Charset = "ISO-8859-9"
Mail.Host = mHost
Mail.From = mFrom
Mail.Username = mUsername
Mail.Password = mPasword
Mail.FromName = Mail.EncodeHeader(Senderr, "ISO-8859-9")
Mail.AddAddress sMail
Mail.Subject = Mail.EncodeHeader(Subject, "ISO-8859-9")
Mail.IsHTML = True
Mail.Body = Mesaj
Mail.Send
End Sub
Function EncodeHeader(Header As String, Optional Charset = "ISO-8859-1") As String
Encodes a string containing non-US-ASCII characters according to RFC-1522, returns the resultant encoded string. Use this method to encode a non-US-ASCII subject, sender's name or recipient's name, e.g.
Mail.Subject = Mail.EncodeHeader("La fête à Jean-Sébastien Bach")
or
Mail.AddAddress "oystein@somecompany.no", Mail.EncodeHeader("Øystein")
Charset can be set to "UTF-8" or any valid character set code described in Chapter 6.
关于android - 使用 Persits 的邮件发件人和主题字符编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41714735/