我处理好电子邮件。现在,我遇到了一些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
答案 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会照顾它!希望有所帮助。