代码之家  ›  专栏  ›  技术社区  ›  JL. Hans Passant

如何从字节数组中添加电子邮件附件?

c#
  •  94
  • JL. Hans Passant  · 技术社区  · 14 年前

    我有一个 byte[] 文件的内容。我想用 System.Net.Mail .

    我注意到attachment类有1个重载,它接受一个流。

    Attachment att = new Attachment(Stream contentStream,string name);
    

    能通过吗 字节[] 通过这种超负荷?

    2 回复  |  直到 10 年前
        1
  •  184
  •   Jon Skeet    14 年前

    最简单的方法:

    Attachment att = new Attachment(new MemoryStream(bytes), name);
    

    注意,除非您在异步操作中做一些奇怪的事情, MemoryStream 可以安全地离开,这可能会让你的生活更轻松。诚然没有 保证 这在将来是真的,但我认为这不太可能改变。我看不出任何有关处理附件是否会处理其流的指示:(

        2
  •  33
  •   Community Jaime Torres    13 年前

    你需要转换 byte[] 到A MemoryStream 使用适当的 MemoryStream constructor overload .

    Attachment att = new Attachment(new MemoryStream(myBytes), name);
    

    请注意 名称 参数到 Attachment's constructor 指定附件内容类型的名称,而不是附件本身的名称。