【问题标题】:.NET: Problems creating email attachment from MemoryStream.NET:从 MemoryStream 创建电子邮件附件时出现问题
【发布时间】:2011-03-02 03:54:22
【问题描述】:

我正在使用以下方法从 MemoryStream 创建附件:

public void AddAttachment(Stream stream, string filename, string mimeType)
{
  byte[] buffer = ((MemoryStream) stream).GetBuffer();
  Attachment attachment = new Attachment(stream, filename, mimeType);
  _mail.Attachments.Add(attachment);
}

请注意,第一行不是必需的,对于附件功能也不是必需的,在调试期间将 byte[] 放在手边很有用,这样我就可以看到它有多大。 (它通常有大约 80,000 个元素。)

代码运行良好,电子邮件已发送。当 Outlook 收到电子邮件时,它会在收件箱中显示附件符号,但当您进入电子邮件时,附件不存在。

很遗憾,我无法访问邮件服务器以了解有关电子邮件的更多信息,例如附件的外观、大小等。

谁能建议 MemoryStream 参数的哪些属性可以告诉我它是否以某种方式对附件无效?或者想想我还可以尝试什么?

谢谢。

大卫

【问题讨论】:

  • 但是附件最后是文件。为什么不创建虚假/虚拟文件而不是使用 MemoryStream?
  • 因为我想使用 MemoryStream。
  • 这是我得到的确切代码,但正如 David M 在他的回答中所说,我首先使用stream.Position = 0,这对我有用。

标签: .net stream attachment mailmessage


【解决方案1】:

您是否在将内容写入内存流后将其位置重置为 0?

【讨论】:

  • 就是这样!就是这样!非常感谢。
  • 没问题。很高兴就这么简单。
  • 顺便说一句有趣的音乐会时间表。新世界交响曲或星球大战的主题在哪里? ;)
  • 我认为新世界交响乐团将于 2011 年 6 月上映,而我们在三四年前制作了《星球大战》... ;)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-11-20
  • 2011-12-05
  • 2016-02-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-24
相关资源
最近更新 更多