使用附件C#发送电子邮件

时间:2015-03-10 09:41:11

标签: c# visual-studio-2010 email sendmail smtpclient

我需要发送带附件的电子邮件。我正在使用以下代码:

MailMessage msg = new MailMessage("adrFrom", "adrTo", "header", "body");

SmtpClient client = new SmtpClient("hostName", 25);
client.DeliveryMethod = SmtpDeliveryMethod.Network;
client.UseDefaultCredentials = false;
client.Credentials = new System.Net.NetworkCredential("accountName", "password");

Attachment atch = new Attachment(filePath, MediaTypeNames.Application.Octet);

atch.Name = "FileName.docx";

msg.Attachments.Add(atch);

client.Send(msg);

收到消息,附件也在那里,但文件名看起来像'=?utf-8?B?dXRHRDBZTFJnOUdBMFlzZzBKelF1TkNoPz0NCiA9P3V0Zi04P0I / TG1S?= \',也没有扩展名(.docx),文件内容看起来像是在Base64编码中。 如何使用.docx文件发送电子邮件,保存其扩展名和名称?

2 个答案:

答案 0 :(得分:0)

内容类型添加到附件

System.Net.Mime.ContentType contentType = new System.Net.Mime.ContentType();
contentType.MediaType = System.Net.Mime.MediaTypeNames.Application.Octet;
contentType.Name = "test.docx";
msg.Attachments.Add(new Attachment("I:/files/test.docx"), contentType);

答案 1 :(得分:0)

我找到了解决方案

问题出在文件名中的俄文字母中。没有它,一切正常。