你的位置:首页 > ASP.net教程

[ASP.net教程]C# 发送邮件 附件名称为空


 示例代码

// 1.创建邮件MailMessage mailMsg = new MailMessage();mailMsg.To.Add(new MailAddress("test@test.com"));// 2.设置邮件标题、正文等信息mailMsg.HeadersEncoding = Encoding.GetEncoding("gb2312");mailMsg.SubjectEncoding = Encoding.GetEncoding("gb2312");mailMsg.BodyEncoding = Encoding.GetEncoding("gb2312"); // 邮件内容编码mailMsg.Subject = emailTitleStr; // 邮件标题mailMsg.Body = emailBodyStr;mailMsg.IsBodyHtml = true; // 邮件内容是否支持htmlmailMsg.Priority = MailPriority.High;// 附件:在 .net 4.0中,附件名称含有特殊名称时,接收方将收到名字为空的附件mailMsg.Attachments.Add(new Attachment("D:\资料(2016).txt"));// 3.创建SMTP发送SmtpClient smtp = new SmtpClient(emailSMTP, emailPort);smtp.Credentials = new NetworkCredential(emailName.Address, emailPwd);smtp.DeliveryMethod = SmtpDeliveryMethod.Network;smtp.Send(mailMsg);


问题说明:使用 SmtpClient 添加附件时,若附件名称过长或含有特殊符号,会造成邮件接收方收到的附件名称为空。

问题原因:.net 4.0的一个Bug。

解决方案:安装 .net 4.5或以上类库。

下载地址

官网:https://www.microsoft.com/zh-cn/download/details.aspx?id=30653

百度:http://rj.baidu.com/soft/detail/22370.html

 

 

==================================系列文章==========================================

本篇文章:2.3 C# 发送邮件 附件名称为空

C#文章导航