c# – MailMessage – 打开附件时出错
作者:互联网
我正在使用NPOI创建一个excel工作簿并尝试将其作为附件发送到电子邮件中.我的代码如下:
var wb = new HSSFWorkbook();
//create the workbook
using(var ms = new MemoryStream())
{
wb.Write(ms);
var msg = new MailMessage();
//create email
msg.Attachments.Add(new Attachment(ms, "Document.xls", "application/vnd.ms-excel"));
client.Send(msg);
}
我已经排除了创建工作簿的代码,我已经测试确保它可以工作(我能够保存文件并打开它而没有问题)但是如果你想看到任何东西请问.客户端只是我的SmtpClient.
电子邮件发送没有问题,附件以Document.xls(如预期的那样)出现,但是当我打开它时,我收到以下消息(在Excel 2010中),当我单击“是”打开时,工作表为空.
您尝试打开的文件“Document.xls”的格式与文件扩展名指定的格式不同.在打开文件之前,请验证文件是否已损坏且是否来自受信任的源.你想现在打开文件吗?
据我所知,我正在指定格式.有谁看到我做错了什么?任何帮助,将不胜感激.
解决方法:
我终于弄明白了.在将Stream传递给附件之前,我需要将其位置设置回零.
ms.Position = 0;
而已!
标签:c,npoi,mailmessage 来源: https://codeday.me/bug/20190612/1226934.html