【问题标题】:Craft/Construct attachment using MailKit使用 MailKit 制作/构建附件
【发布时间】:2022-01-03 13:33:14
【问题描述】:

我在任何地方都找不到这个问题。

是否可以使用 MailKit 制作附件而不将其保存在本地?

我有链接到数据库的应用程序,我正在为发送电子邮件提供 Windows 服务。

我从 DB 读取数据,我想在程序中制作 .json 附件,并使用 MailKit 通过邮件发送,而不将该附件保存在本地。

提前致谢。

【问题讨论】:

  • 我对 mailkit 不熟悉,但我猜它希望在某个地方使用某种Stream 来写入附件,因此您可以只提供MemoryStream 而不是类似于FileStream
  • 感谢您的回答。我忘了提到我正在使用实体框架核心进行数据库操作。现在,我的计划是将 Entity 对象转换为字节数组,将该字节数组读入 MemoryStream,然后将 MemoryStream 序列化为 JSON 对象,并使用 MailKit 将其作为文件附件发送。这一切都可能吗?
  • 我不会那样做,我会从数据库中加载实体,将其序列化为 JSON,从该字符串中创建一个 MemoryStream,然后将其发送到 MailKit,序列化一个MemoryStream to JSON 不会做你想做的事
  • 好的,我会试试的。非常感谢

标签: c# windows-services email-attachments mailkit mimekit


【解决方案1】:

MimeKit 允许读取和写入 MemoryStreams(和其他非基于文件的流)。

您还可以构造消息,其中附件等内容仅存储在内存中而不存储在磁盘上。

BodyBuilder.Attachments 集合允许将附件数据添加为 byte[] 和 Streams(包括允许 MemoryStreams)。这些Add() 方法中的fileName 参数只是为了提供一个文件名来设置在附件上。

【讨论】:

    猜你喜欢
    • 2014-08-18
    • 2015-12-05
    • 1970-01-01
    • 2016-07-13
    • 1970-01-01
    • 2021-01-03
    • 1970-01-01
    • 2014-08-01
    • 2015-01-23
    相关资源
    最近更新 更多