编程语言
首页 > 编程语言> > c# – MailMessage – 打开附件时出错

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