将文件附加到电子邮件时使用MemoryStreams作为内容源,C#

时间:2011-08-11 22:33:42

标签: c# email memorystream attachment

所以,我在尝试使用MemoryStream作为内容源附加文件时遇到了一些麻烦。

现在,我正在从远程Web服务器获取图像,并尝试将它们打包成一个用作日常报告的电子邮件。

我已经完成了提取,解析和图像提取,并且我已经测试了它的工作原理。我面临的问题是,当我使用MemoryStream作为内容源/内容流创建Attachment对象时,电子邮件包含空白文件/图像。但是,当我指定驻留在硬盘驱动器上的实际文件时,它会毫无问题地附加到邮件中,并且收到的邮件是完美的。

显然,在我附加文件并发送它们之前,我宁愿不必在本地缓存任何图像,因为这会在缓存中产生不必要的开销,然后清除它们。但是,如果需要,我可以把它作为我的最后手段。

我的问题是,在创建Attachment对象时是否存在使用MemoryStream作为contentStream的某些已知问题,或者是否存在我忘记的内容。

谢谢!

1 个答案:

答案 0 :(得分:6)

我正在尝试我的通灵调试功能:你已经为数据加载了MemoryStream,忘了在读出之前将位置重置为零。如果是的话,

myMemoryStream.Position = 0

在战术位置上可能会有所帮助。