Net.Mail发送邮件,附件变成了乱码(dat文件)

chenhongjun0624 2013-06-18 04:29:53
代码:

string strSmtpServer = smtpServer;
string strFrom = mailFrom;
string strMailProxyUser = mailProxyUser;
string strMailProxyPass = mailProxyPassword;
SmtpClient client = new SmtpClient(strSmtpServer);
client.UseDefaultCredentials = false;
client.Credentials = new System.Net.NetworkCredential(strMailProxyUser, strMailProxyPass);
client.DeliveryMethod = SmtpDeliveryMethod.Network;
client.Port = 25;
client.Timeout = 3000000;
MailAddress from = new MailAddress(strFrom);
MailAddress to = new MailAddress(strTo, strToDisplayName);
System.Net.Mail.MailMessage message = new System.Net.Mail.MailMessage(from, to);
message.Subject = strSubject;
message.Body = strBody;
System.Net.Mail.Attachment attachment = null;
message.SubjectEncoding = Encoding.UTF8;
message.HeadersEncoding = Encoding.UTF8;
message.BodyEncoding = Encoding.UTF8;
message.IsBodyHtml = true;
if (attachmentFiles != null)
{
foreach (string files in attachmentFiles)
{
if (System.IO.File.Exists(files))
{
attachment = new System.Net.Mail.Attachment(files);
attachment.NameEncoding = Encoding.UTF8;
message.Attachments.Add(attachment);
}
}
}

try
{
client.Send(message);
}
catch (Exception ex)
{
DebugWrite("发送邮件出现问题了" + ex.ToString());
}
finally
{
foreach (Attachment item in message.Attachments)
{
item.Dispose();
}
if (attachment != null)
{
attachment.Dispose();
}
message.Dispose();
}


下面是附件出现的乱码:
=?utf-8?B?byttVWdPUzRrK2FJdCtXZnV1bUhrZWkxPz0NCiA9P3V0Zi04P0I/aE9T?=\
\
=?utf-8?B?NnArUzhzT1dBdk9paHFESXdNVE13TmpFM0xuaHNjdz09Pz0=?="
Content-Transfer-Encoding: base64
Content-Disposition: attachment

我本机测试是没有问题的,但是部署到服务器上发送邮件时,附件就会出现乱码,正文和标题都是正常的。

自己估计:可能跟附件的名称是中文有关系,但是不知道如何修改。

请求指点。

...全文
1398 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
a090610214 2015-12-01
  • 打赏
  • 举报
回复
我使用UTF-8编码,为什么邮件主题和内容都是中文乱码?
lijinan2008 2014-09-29
  • 打赏
  • 举报
回复
我也被这个问题困扰了好久,今年实在没办法要去解决了。翻遍了百度都找不到答案。不知道楼主解决没有。这个我在google找到了答案,原来这个是.net4.0的一个bug,文件名过长的时候,官方说法是超过41个非ascii码的字符时,就会出现两次编码。原来微软在2010年的时候已经发布了这个修复方法。下载 https://connect.microsoft.com/VisualStudio/Downloads/DownloadDetails.aspx?DownloadID=31723
hfb1992 2013-09-18
  • 打赏
  • 举报
回复
是因为附件名太长了 缩短一下试试
t101lian 2013-06-20
  • 打赏
  • 举报
回复
嗯,,百度了很久,,这个http://blog.sina.com.cn/s/blog_62fda93c010191fc.html 真的不错
喂大的程序员 2013-06-19
  • 打赏
  • 举报
回复
引用 1 楼 qq353641719qq 的回复:
http://blog.sina.com.cn/s/blog_62fda93c010191fc.html
这楼可以看
myhope88 2013-06-19
  • 打赏
  • 举报
回复
没遇到过,帮顶下
chenhongjun0624 2013-06-18
  • 打赏
  • 举报
回复
没人遇到过吗
chenhongjun0624 2013-06-18
  • 打赏
  • 举报
回复
引用 2 楼 a346729576 的回复:
attachment.NameEncoding = Encoding.UTF8; 用gb2312呢?
没有用的
夜色镇歌 2013-06-18
  • 打赏
  • 举报
回复
attachment.NameEncoding = Encoding.UTF8; 用gb2312呢?
qq353641719qq 2013-06-18
  • 打赏
  • 举报
回复
http://blog.sina.com.cn/s/blog_62fda93c010191fc.html

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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