MailKit - 如何获取每个附件的大小

MailKit - How to get size of each attachment

我想将附件信息格式化为具有 文件名文件大小

的字符串

我可以在 Attachments.ContentDisposition 中得到 FileName,但是 Sizenull。还有其他获取方式吗?

例如:string.Join(',' + Environment.NewLine, mailData[i].Attachments.ToList().Select(y => y.ContentDisposition.FileName + '(' + y.ContentDisposition.Size.ToString() + ')').ToList())

我想要的示例输出:

xxx.jpg(123 bytes), xxx.png(456 bytes), xxx.pdf(123456 bytes),

没有 属性 可以为您提供大小(ContentDisposition 上的 Size 属性 依赖于发送客户端来设置它,即使设置了也可能不会准确)。

所以要获得附件的大小,您需要这样做:

static long MeasureAttachmentSize (MimePart part)
{
    using (var measure = new MimeKit.IO.MeasuringStream ()) {
        part.Content.DecodeTo (measure);
        return measure.Length;
    }
}