我有一个使用Persits Mail的系统。准确地说所有邮件都正确发送但只有安卓主机邮件应用程序没有在主题和发件人文本中显示土耳其字符。我在下面分享图片和邮件发送代码。
邮件发送功能
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
答案 0 :(得分:3)
要在标头中发送的电子邮件消息字段(来自,来自主题和其他标准和自定义标头)必须在包含非ASCII字符时进行编码。
AspEmail有一个辅助方法EncodeHeader来编码这样的fieds,所以你可以使用它。
在给定的示例代码中,必须对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
根据编码包含非US-ASCII字符的字符串 RFC-1522,返回结果编码的字符串。使用此方法 编码非US-ASCII主题,发件人姓名或收件人姓名,例如
Mail.Subject = Mail.EncodeHeader("La fête à Jean-Sébastien Bach")
或
Mail.AddAddress "oystein@somecompany.no", Mail.EncodeHeader("Øystein")
Charset可以设置为" UTF-8"或任何有效的字符集代码 在Chapter 6中描述。