2017-01-24 3 views
-1

私は電子メールをうまく処理します。今、私はPDFであるいくつかの電子メールに出くわし、.Attachmentsで気づかれないのでインラインでなければなりません。ここに私のコードです。私はそれを得ることができません。助けてください。ありがとう!私のC#プログラムはインラインイメージをダウンロードしません

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

空白は残念です。これは私が今までにやった最初のコードです。二重スペースを使わなければ私の画面では、すべての線が接続されています。私は将来、それを覚えていなければなりません.....今、電子メールに。良い質問!機密扱いのため、実際に私の制作メールを使用することはできませんが、明日はおそらくスクリーンショットを撮ります。次に、自分の添付ファイルで問題を再現しようとします。わかりました、複雑です。助けてくれてありがとう! –

+0

911が入ってきました。私はそれを理解したかもしれない...あなたに知らせるだろう –

答えて

0

私はそれを把握なかったと私はかなり上のすべてのコードをなくすだけにそれを凝縮しましたカップルライン。私のvar添付ファイルで、もしそれが0なら、私はそのインラインを知っています。私はこれをしました:

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

通常、私たちは添付ファイルループでMimeKit.Mimepart添付ファイルを行います。私はカップルのものを見つけました。 var mp = bd.ElementAt(inAttCnt-1);を実行します。 var ma2 = mp.ContentType.Name; ma2 <> nullであることを確認してください。あなたは例外をスローします。 foreachはそれを世話します!希望が役立ちます。

関連する問題