我的 C# 程序不下载内联图像

my C# program doesnt download inline images

我处理电子邮件很好。现在,我遇到了一些 PDF 格式的电子邮件,它们必须是内联的,因为它们不会被 .Attachments 注意到。这是我的代码。我无法得到它。请帮忙。谢谢!

var message = mainFolder.GetMessage(i - 1);

eCount++;
// Get specifics of email

var attachments = message.Attachments.ToList();

int attCnt = attachments.Capacity;

string preChk = message.From.ToString();

var msgMsg = new MimePart();

var att2 = new List<MimePart>();

var mp2 = new List<Multipart>();

var iter = new MimeIterator(message);

int mpCnt = 0;


if (attCnt == 0)
{

    while (iter.MoveNext())
    {
        mpCnt += 1;
        var mp = iter.Parent as Multipart;

        var prt = iter.Current as MimePart;

        if (mp != null && prt != null && prt.IsAttachment)
        {   //Check if an attachment slipped through

            mp2.Add(mp);

            att2.Add(prt);
        }
    }
}

// 如果我展开 iter.MoveNext,我可以深入到图像 iter.MoveNext

我确实弄明白了,我几乎删除了上面的所有代码并将其压缩为只有几行。在我的 var 附件中,如果它 = 0,那么我知道它是内联的。我这样做了:

var bd = message.BodyParts.ToList<MimeKit.MimeEntity>();

通常,我们在附件循环中执行 MimeKit.Mimepart 附件。我发现了几件事。做 var mp = bd.ElementAt(inAttCnt - 1); var ma2 = mp.ContentType.Name;检查 ma2 <> null。不要做 bd.Remove 你会抛出异常! foreach 会处理它!希望对您有所帮助。