我的C#程序没有下载内嵌图像

时间:2017-01-24 21:27:59

标签: c# email inline attachment

我处理好电子邮件。现在,我遇到了一些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

1 个答案:

答案 0 :(得分:0)

我确实搞清楚了,我几乎消除了上面的所有代码,并将其浓缩为几行。在我的var附件中,如果它= 0,那么我知道它的内联。我这样做了:

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

通常,我们在附件循环中执行MimeKit.Mimepart附件。我发现了几件事。 do var mp = bd.ElementAt(inAttCnt - 1); var ma2 = mp.ContentType.Name;检查ma2&lt;&gt;空值。不要做bd。移动你会抛出异常! foreach会照顾它!希望有所帮助。