C# MailMessage 发送邮件带附件时 附件发送后 收到时无法显示

C#MailMessage写的邮件发送程序,在添加某些包含中文字符的附件时,收件人处附件显示不出来。但有的附件能显示。附上添加附件的代码,后面的图片是收件人附件的显示,附... C# MailMessage 写的邮件发送程序,在添加某些包含中文字符的附件时,收件人处附件显示不出来。但有的附件能显示。附上添加附件的代码,后面的图片是收件人附件的显示,附件打不开。

红叉的那个就是显示不出来的附件,
原附件名称为:PN14097专利申请受理通知书20131113.pdf
发送后就显示不出来了,可有的附件也包含中文就可以显示出来,或者把这个附件改成123123.pdf就也能正常显示了。附上添加附件的代码: Attachment data; ContentDisposition disposition; DirectoryInfo DTInfo = new DirectoryInfo(attachmentsPath); FileInfo[] files = DTInfo.GetFiles("*.*"); for (int i = 0; i < files.Length; i++) { FileInfo file = files[i]; data = new Attachment(file.FullName, MediaTypeNames.Application.Octet); disposition = data.ContentDisposition; data.NameEncoding = Encoding.UTF8; mMailMessage.Attachments.Add(data); }希望大家能帮帮忙,搞了快一天了,也没有找到原因。
展开
 我来答
然后去远足
2015-05-20 · TA获得超过1万个赞
知道大有可为答主
回答量:4016
采纳率:83%
帮助的人:2447万
展开全部

好奇怪的问题,我测试没发现有这个问题。

 

题主可以试试手动指定一下附件名字的编码:

Attachment data;
data.NameEncoding = Encoding.UTF8;  // 编码
mMailMessage.Attachments.Add(data);
追问
我已经指定了编码的,原因我找到了,是因为Framework4.0的Bug,文件名字过长且包涵中文字符就会出现编码错误。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式