首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MailMessage依附于byte[]

MailMessage依附于byte[]
EN

Stack Overflow用户
提问于 2020-12-09 15:34:02
回答 1查看 1.1K关注 0票数 0

在过去的3天里,我一直在搜索Google/所以没有成功,我希望有人能帮助我或指出正确的方向。

我们有一种发送电子邮件的方法(一堆要过载)。我的任务是将电子邮件保存到数据库中。

问题

如何将附件的内容提取到byte[]中以便将其保存到数据库中?

我已经阅读了许多将附件保存到磁盘的示例,但我希望避免将附件保存到磁盘中,然后将其读入内存(这可能是我找不到任何东西的原因,因为它是不可能的,所以我怀疑它)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-09 16:10:58

因此,我认为您的问题是如何将流转换为字节,这样您就不必将其保存到磁盘中。您可以使用这个扩展方法来完成这个任务。

代码语言:javascript
复制
public static class StreamExtensions
{
    public static byte[] ReadAllBytes(this Stream instream)
    {
        if (instream is MemoryStream)
            return ((MemoryStream) instream).ToArray();

        using (var memoryStream = new MemoryStream())
        {
            instream.CopyTo(memoryStream);
            return memoryStream.ToArray();
        }
    }
}

请参阅https://stackoverflow.com/a/33611922/237109

用这种方法你可以做到这一点

代码语言:javascript
复制
System.Net.Mail.MailMessage m = new MailMessage();
foreach (var element in m.Attachments)
{
  byte[] bytes = element.ContentStream.ReadAllBytes()
   element.ContentType // you will want to save this as well so you can convert it to a file when you need to pull it back out of the database.
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65219876

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档