gpt4 book ai didi

c# - MailMessage - 打开附件时出错

转载 作者:太空狗 更新时间:2023-10-30 00:32:02 26 4
gpt4 key购买 nike

我正在使用 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);
}

我已经排除了创建工作簿的代码,我已经测试以确保它可以正常工作(我能够保存文件并毫无问题地打开它)但是如果您想查看任何内容,请询问。 client 就是我的 SmtpClient

电子邮件发送没有问题,附件显示为 Document.xls(如预期),但是当我打开它时,我收到以下消息(在 Excel 2010 中)并且当我单击"is"打开时,工作表是空白的。

您尝试打开的文件“Document.xls”的格式与文件扩展名指定的格式不同。在打开文件之前,确认文件未损坏且来源可靠。你想现在打开文件吗?

据我所知,我正在指定格式。有没有人看到我做错了什么?任何帮助将不胜感激。

最佳答案

我终于明白了。在将 Stream 传递到 Attachment 之前,我需要将其位置设置回零。

ms.Position = 0;

就是这样!

关于c# - MailMessage - 打开附件时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20550710/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com