请教:怎么解决Jmail收邮件时,中文名称的附件名称是乱码的问题

hxcy001 2009-02-23 10:00:16
我在用Jmail4.4pro收邮件时,如果收到的邮件是UTF8编码,会出现中文的标题、中文的附件名称都是乱码的问题。但正文、附件内容都正常。
对于标题乱码,暂时找到了解决办法,不要直接用JMail.Message.Subject,而是取JMail.Message.Headers.GetHeader("Subject"),然后再解码。
但对于附件名称,则没有办法处理。只能JMail.Attatchment.Name得到附件名称,但那已经是乱码,类似于“娴?璇?docx”这种形式,似乎是不能正确恢复了。
请教成功用过JMail的高手,有解决这个问题的办法吗?
...全文
293 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
hxcy001 2009-02-27
  • 打赏
  • 举报
回复
有谁试过Jmail收UTF8编码的邮件吗?
hxcy001 2009-02-23
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 the_pain 的回复:]
JMail.Charset = "gb2312"
JMail.ContentTransferEncoding = "base64"
JMail.Encoding = "base64"
JMail.ISOEncodeHeaders = false
[/Quote]

这些方法之前试过了,刚才又试了一遍,JMail.ContentType="text/html"这句也去掉了,还是不行啊。
hxcy001 2009-02-23
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 the_pain 的回复:]
Mail.Charset="utf-8";
Mail.HTMLBody="Dear sir, <br>"+"Please reply the following question. <br>"+strqeustion+" <br>From "+strmail;
Mail.AddAttachment(File_Name,name,false,null);
[/Quote]

^_^ ^_^

不是发邮件,是收取。
Attachments atts = new AttachmentsClass();
fileName = atts[i].Name;

这里的属性只能取已经处理过的附件名称。这已经是乱码了。有没有其他途径获取附件名称?
the_pain 2009-02-23
  • 打赏
  • 举报
回复
JMail.Charset = "gb2312"
JMail.ContentTransferEncoding = "base64"
JMail.Encoding = "base64"
JMail.ISOEncodeHeaders = false
the_pain 2009-02-23
  • 打赏
  • 举报
回复
把JMail.ContentType="text/html"这句去掉就可以了,试一试!
the_pain 2009-02-23
  • 打赏
  • 举报
回复
Mail.Charset="utf-8";
Mail.HTMLBody="Dear sir,<br>"+"Please reply the following question.<br>"+strqeustion+"<br>From "+strmail;
Mail.AddAttachment(File_Name,name,false,null);

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧