在ASP.NET中 使用jmail提取KERIO邮件系统的邮件时 乱码
在ASP.NET中 使用jmail提取KERIO邮件系统的邮件时 乱码
据我了解,乱码原因是:KERIO邮件系统在发送邮件时,标题用的是UTF-8格式,而内容用的是 GB2312格式。
当我用jmail提取KERIO邮件时,展现的标题均为乱码,当然内容是正确的。
提取的邮件如果是其他邮件(比如:GMAIL),标题就不是乱码。
以下是邮件标题:
鍥炲: 鍐呯淇敼鎯呭喌
以下是邮件内容:
收到!
显示格式是 GB2312
如果转成UTF-8
结果就是:
回复: 内管修改情况
?????
跪求解决方案!
------最佳解决方案--------------------string Subject = Encoding.UTF8.GetString(Encoding.GetEncoding("GB2312").GetBytes(mailMessage.Headers.GetHeader("Subject")))
------其他解决方案--------------------没人帮忙吗? 自己顶起来
------其他解决方案--------------------Set jmail = Server.CreateObject("JMAIL.Message") '建立发送邮件的对象
jmail.silent = true '屏蔽例外错误,返回FALSE跟TRUE两值j
jmail.logging = true '启用邮件日志
jmail.Charset = "GB2312" '邮件的文字编码为国标
jmail.ContentType = "text/html" '邮件的格式为HTML格式
Jmail.Encoding="BASE64";
jmail.ISOEncodeHeaders = false '是否进行ISO编码,默认为True(加上了这一句)
jmail.AddRecipient email '邮件收件人的地址
jmail.From = "163@163.com" '发件人的E-MAIL地址
jmail.MailServerUserName = "163@163.com" '登录邮件服务器所需的用户名
jmail.MailServerPassword = "11111" '登录邮件服务器所需的密码
jmail.Subject = title '邮件的标题
jmail.Body = content '邮件的内容
'jmail.Prority = 1 '邮件的紧急程序,1 为最快,5 为最慢, 3 为默认值
jmail.Send("Smtp.163.com") '执行邮件发送(通过邮件服务器地址)
jmail.Close() '关闭对象
去掉这句试试: jmail.ContentType = "text/html"
------其他解决方案--------------------message.BodyEncoding = System.Text.Encoding.Default;
这种编码格式
------其他解决方案--------------------[size=24px]补充一下 : KERIO 是一款软件吧。。我们只能对其设置,不能修改他的代码![/size]
------其他解决方案--------------------你应该判断邮件的来源,如果是 KERIO邮件系统的邮件
那就应该分别用不同的编码获取 标题 和正文
------其他解决方案--------------------
请问用JMAIL如何获取???
现在的提取方法是:jmail.POP3Class.Connect()方法
------其他解决方案-------------------- jmail.Message mailMessage;
mailMessage.Charset = "GB2312";
if(mailMessage.From 是 KERIO邮件系统的邮件)
{
Body = mailMessage.Body;
mailMessage.Charset = "UTF-8";
Subject = mailMessage.Subject;
}
else
{
}
------其他解决方案--------------------还是不行。。。。。。。。。。。
------其他解决方案--------------------现在是什么情况
------其他解决方案--------------------