【发布时间】:2011-02-19 00:52:33
【问题描述】:
我有一个 C# 应用程序,它使用 SMTP 通过 Exchange 2007 服务器通过电子邮件发送 Excel 电子表格报告。这些附件对 Outlook 用户来说很好,但对于 Thunderbird 和 Blackberry 用户来说,附件已重命名为“第 1.2 部分”。
我发现这个article 描述了这个问题,但似乎没有给我一个解决方法。我无法控制 Exchange 服务器,因此无法在那里进行更改。在 C# 端有什么我可以做的吗?我曾尝试对正文使用短文件名和 HTML 编码,但都没有任何区别。
我的邮件发送代码是这样的:
public static void SendMail(string recipient, string subject, string body, string attachmentFilename)
{
SmtpClient smtpClient = new SmtpClient();
NetworkCredential basicCredential = new NetworkCredential(MailConst.Username, MailConst.Password);
MailMessage message = new MailMessage();
MailAddress fromAddress = new MailAddress(MailConst.Username);
// setup up the host, increase the timeout to 5 minutes
smtpClient.Host = MailConst.SmtpServer;
smtpClient.UseDefaultCredentials = false;
smtpClient.Credentials = basicCredential;
smtpClient.Timeout = (60 * 5 * 1000);
message.From = fromAddress;
message.Subject = subject;
message.IsBodyHtml = false;
message.Body = body;
message.To.Add(recipient);
if (attachmentFilename != null)
message.Attachments.Add(new Attachment(attachmentFilename));
smtpClient.Send(message);
}
感谢您的帮助。
【问题讨论】:
-
您是否尝试定义/更改
Attachment.Name属性? -
不,我没有 - “获取或设置 MIME 内容类型名称值”,您对尝试什么值有什么建议吗?谢谢。
-
当收到带有附件的电子邮件时,
Name显示为附件的名称。所以你可以尝试任何值。
标签: c# email smtp attachment