如何获取 mime 的附件正文部分的边界?

How to get the bounds of an attachment bodypart of a mime?

我正在尝试对 mime 进行分段,从原始 mime 中提取附件,但是当我获取内容时,流并不总是提供 mime 的起始边界,有没有办法让我使用它Mimekit?

您需要做的是直接使用 MimeParser(而不是 MimeMessage.Load,如果您现在正在使用的话)并附加到 MimeEntityBegin 事件,该事件将为您提供字节偏移量消息中每个 MIME 实体的解析。

换句话说,你可以这样做:

var beginOffsets = new Dictionary<MimeEntity, long> ();
parser.MimeEntityBegin += (s, e) => {
    beginOffsets.Add (e.Entity, e.BeginOffset);
};
var message = parser.ParseMessage ();

foreach (var bodyPart in message.BodyParts) {
    var beginOffset = beginOffsets[bodyPart];
}