【发布时间】:2021-12-05 20:24:33
【问题描述】:
我的 SMTP 服务器限制了每个 smtpclient 会话可以发送的数据量以及其他一些限制。例如,我想发送 10 条消息,但服务器可能会施加总共 10Mb 的限制。我想计算消息的大小,以便知道何时需要重新初始化服务器连接。
我正在使用 MailKit 库来完成这项工作。
我正在考虑将包含附件的 Message.Body 写入 MemoryStream,但这似乎只是为了获得大小。
如果我有一个内存中的 MimeMessage 对象,是否有一种方法可以在发送之前确定其完整的内容长度?
-----更新-----
如果没有原生选项,这是我建议的方法:
using (var memory = new MemoryStream())
{
await mailMessage.Body.WriteToAsync(memory);
curMessageLength = Convert.ToBase64String(memory.ToArray()).Length;
}
【问题讨论】:
-
@ErmiyaEskandary 谢谢,虽然这个问题是相关的,可能是我必须走的路,但我希望 MailKit 库中可能有一些我可能遗漏的东西。
-
啊-不,不幸的是,我在文档中没有找到任何内容!我只是计算附件大小(如 base64 提醒你)和正文,这应该足够了 - 为标题等提供或获取一个小缓冲区,