2017-02-09 10 views
2

previous question에서 시작하는 경우 MimeMessage의 본문을 설정하면 첨부 파일, 본문 부분 및 모든 세부 정보가 제거됩니다. 이 문제를 어떻게 해결할 수 있습니까? 당신 몸은 HTML로 설정되어 있기 때문입니다mimemessage 본문을 설정하면 다른 세부 정보가 제거됩니다.

foreach (MimeKit.MimeEntity bodyPart in tnefMessage.BodyParts) 
{ 
    if (!bodyPart.IsAttachment) 
    { 
     using (MemoryStream ms = new MemoryStream()) 
     { 
      bodyPart.WriteTo(ms); 

      ms.Flush(); 
      ms.Position = 0; 
      using (StreamReader sr = new StreamReader(ms)) 
      { 
       //Read in the contents until we get to the rtf 
       string line; 
       while (!(line = sr.ReadLine()).StartsWith("{") && !line.StartsWith("\\")) { } 

       tnefMessage.Body = new MimeKit.TextPart("plain") 
       { 
        Text = RTFToText($"{line}{sr.ReadToEnd()}") 
       }; 
      } 
     } 
    } 
} 

static string RTFToText(string rtf) 
{ 
    string text = string.Empty; 
    System.Threading.Thread thread = new System.Threading.Thread(() => 
    { 
     using (System.Windows.Forms.RichTextBox rtb = new System.Windows.Forms.RichTextBox()) 
     { 
      rtb.Rtf = rtf; 
      text = rtb.Text; 
     } 
    }); 
    thread.SetApartmentState(System.Threading.ApartmentState.STA); 
    thread.Start(); 
    thread.Join(); 

    return text; 
} 

답변

0

, 당신은 혼합을 설정해야하고 첨부 파일을 다시 추가 :

Multipart multipart = new Multipart("mixed"); 
multipart.Add(new MimeKit.TextPart("plain") 
{ 
    Text = RTFToText($"{line}{sr.ReadToEnd()}") 
}); 

foreach (MimeEntity attachment in tnefMessage.Attachments) 
{ 
    multipart.Add(attachment); 
} 

tnefMessage.Body = multipart;