问题描述
我在用Jmail4.4pro收邮件时,如果收到的邮件是UTF8编码,会出现中文的标题、中文的附件名称都是乱码的问题。但正文、附件内容都正常。对于标题乱码,暂时找到了解决办法,不要直接用JMail.Message.Subject,而是取JMail.Message.Headers.GetHeader("Subject"),然后再解码。但对于附件名称,则没有办法处理。只能JMail.Attatchment.Name得到附件名称,但那已经是乱码,类似于“娴?璇?docx”这种形式,似乎是不能正确恢复了。请教成功用过JMail的高手,有解决这个问题的办法吗?
解决方案
解决方案二:
Mail.Charset="utf-8";Mail.HTMLBody="Dearsir,<br>"+"Pleasereplythefollowingquestion.<br>"+strqeustion+"<br>From"+strmail;Mail.AddAttachment(File_Name,name,false,null);
解决方案三:
把JMail.ContentType="text/html"这句去掉就可以了,试一试!
解决方案四:
JMail.Charset="gb2312"JMail.ContentTransferEncoding="base64"JMail.Encoding="base64"JMail.ISOEncodeHeaders=false
解决方案五:
引用1楼the_pain的回复:
Mail.Charset="utf-8";Mail.HTMLBody="Dearsir,<br>"+"Pleasereplythefollowingquestion.<br>"+strqeustion+"<br>From"+strmail;Mail.AddAttachment(File_Name,name,false,null);
^_^^_^不是发邮件,是收取。Attachmentsatts=newAttachmentsClass();fileName=atts[i].Name;这里的属性只能取已经处理过的附件名称。这已经是乱码了。有没有其他途径获取附件名称?
解决方案六:
引用3楼the_pain的回复:
JMail.Charset="gb2312"JMail.ContentTransferEncoding="base64"JMail.Encoding="base64"JMail.ISOEncodeHeaders=false
这些方法之前试过了,刚才又试了一遍,JMail.ContentType="text/html"这句也去掉了,还是不行啊。
解决方案七:
有谁试过Jmail收UTF8编码的邮件吗?