2017-01-24 9 views
-1

이메일을 잘 처리합니다. 이제는 PDF 파일 인 일부 전자 메일을 보았습니다. 첨부 파일이 없기 때문에 인라인해야합니다. 여기 내 코드가있다. 나는 그것을 얻을 수 없다. 도와주세요. 감사!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인지 확인하십시오. dd를하지 마세요. 예외를 던지십시오! foreach가 그것을 돌볼 것입니다! 희망이 도움이됩니다.