使用 Persits 的邮件发件人和主题字符编码
Mail Sender And Subject Character Encoding With Persits
我有一个使用 Persits Mail 的系统。 Accualy 所有邮件都正确发送,但只有 android 本机邮件应用程序未在主题和发件人文本中显示土耳其语字符。我在下面分享图片和邮件发送代码。
邮件发送功能
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
Android Native Mail App截图(问题出在这里)
Gmail 邮件应用程序屏幕截图(发件人和主题正确使用土耳其语字符)
要在 header 中发送的电子邮件字段(收件人、发件人、主题和其他标准和自定义 headers)必须在包含 non-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.
我有一个使用 Persits Mail 的系统。 Accualy 所有邮件都正确发送,但只有 android 本机邮件应用程序未在主题和发件人文本中显示土耳其语字符。我在下面分享图片和邮件发送代码。
邮件发送功能
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
Android Native Mail App截图(问题出在这里)
Gmail 邮件应用程序屏幕截图(发件人和主题正确使用土耳其语字符)
要在 header 中发送的电子邮件字段(收件人、发件人、主题和其他标准和自定义 headers)必须在包含 non-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.