2012-09-04 20 views
8

मुझे मेल आइटम से अनुलग्नक प्राप्त करने और सहेजने की आवश्यकता है, लेकिन नीचे दिए गए कोड का उपयोग करके सभी अनुलग्नक लौटाते हैं - जिसका अर्थ यह है कि यह एक छवि है जो प्रेषक के हस्ताक्षर जैसे एम्बेडेड छवियों को देता है। मैं सच्चे अनुलग्नक बनाम एम्बेडेड छवियों को अलग कैसे कर सकता हूं? मैंने मंचों से बहुत कुछ देखा है लेकिन यह अभी भी मेरे लिए अस्पष्ट है।vsto + संलग्नक को अलग करें

public static void SaveData(MailItem currentMailItem) 
{ 
    if (currentMailItem != null) 
    {  
     if (currentMailItem.Attachments.Count > 0) 
     { 
      for (int i = 1; i <= currentMailItem.Attachments.Count; i++) 
      { 
       currentMailItem.Attachments[i].SaveAsFile(@"C:\TestFileSave\" + currentMailItem.Attachments[i].FileName); 
      } 
     } 
    } 
} 

उत्तर

8

आप देख सकते हैं एक अनुलग्नक इनलाइन या निम्न pseudo-code from MS Technet Forums का उपयोग करके नहीं है या नहीं।

if body format is plain text then 
    no attachment is inline 
else if body format is RTF then 
    if PR_ATTACH_METHOD value is 6 (ATTACH_OLE) then 
    attachment is inline 
    else 
    attachment is normal 
else if body format is HTML then 
    if PR_ATTACH_FLAGS value has the 4 bit set (ATT_MHTML_REF) then 
    attachment is inline 
    else 
    attachment is normal 

आप Attachment.PropertyAccessor का उपयोग कर संदेश के मुख्य भाग प्रारूपMailItem.BodyFormat का उपयोग करने और माइम लगाव गुण पहुँच सकते हैं।

string PR_ATTACH_METHOD = 'http://schemas.microsoft.com/mapi/proptag/0x37050003'; 
var attachMethod = attachment.PropertyAccessor.Get(PR_ATTACH_METHOD); 

string PR_ATTACH_FLAGS = 'http://schemas.microsoft.com/mapi/proptag/0x37140003'; 
var attachFlags = attachment.PropertyAccessor.Get(PR_ATTACH_FLAGS); 
+1

आपको बहुत बहुत धन्यवाद! यह काम करता हैं! – Liz