2010-07-29 25 views
5

मुझे ईमेल में छवियां एम्बेड करने और Outlook में भेजे जाने से पहले ईमेल का पूर्वावलोकन करने की आवश्यकता है। सीडीओ और रिडेम्प्शन एक विकल्प नहीं है।विस्तारित मैपी फ़ंक्शंस का उपयोग करके Outlook में छवि एम्बेड करें

मैंने निम्नलिखित कोड का प्रयास किया है, लेकिन छवियां बस एक छोटे ब्लॉक के रूप में दिखाई देती हैं।

procedure AddAttachment(FullFileName: String; Attachments: Outlook2000.Attachments; CID: String); 
    const 
    PR_ATTACH_CONTENT_ID = $3712001E; 
    PR_ATTACH_CONTENT_ID_W = $3712001F; // Unicode 
    PR_ATTACH_MIME_TAG  = $370E001E; 
    PR_ATTACH_ENCODING  = $37020102; 
    var 
    IAttach: IMAPIProp; 
    Prop: PSPropValue; 
    AAttachment: Outlook2000.Attachment; 
    FileName: String; 
    PropValue: TSPropValue; 
    Prop1: TSPropTagArray; 
    begin 
    FileName := ExtractFileName(FullFileName); 
    Prop := nil; 
    try 
     AAttachment := Attachments.Add(FullFileName, olByValue, 1, FileName); 
     IAttach := AAttachment.MAPIOBJECT as IMAPIProp; 
     if Assigned(IAttach) then 
     try 
      PropValue.ulPropTag := PR_ATTACH_MIME_TAG; 
      PropValue.Value.lpszA := 'image/jpeg'; 
      HrSetOneProp(IAttach, @PropValue); 
      PropValue.ulPropTag := PR_ATTACH_CONTENT_ID; 
      PropValue.Value.lpszA := PAnsiChar(AnsiString(CID)); 
      HrSetOneProp(IAttach, @PropValue); 
     finally 
      if Assigned(Prop) then MAPIFreeBuffer(Prop); 
      IAttach := nil; 
     end; 
    except 
    end; 
    end; 
+0

आप HTML स्वरूप का उपयोग कर रहे हैं? क्या आप एम्बेडेड छवि के लिए सीआईडी ​​यूआरएल का उपयोग कर रहे हैं? – Ben

+0

@Ben क्या वह HTML प्रारूप का उपयोग करना चाहिए? क्या कोई सीआईडी ​​यूआरएल शामिल है? मुझे यकीन है कि वह जो कुछ भी आपके उत्तर देता है उसका उपयोग करेगा - जब तक आप एमएपीआई का उपयोग कर रहे हों और यह तब काम करता है जब उपयोगकर्ता का ई-मेल क्लाइंट आउटलुक होता है। –

+1

@IanBoyd, मुझे उम्मीद है कि वह ** ** एक सीआईडी ​​यूआरएल का उपयोग कर ** है * अब वह उनके बारे में जानता है * ... – Ben

उत्तर

1

प्रश्नकर्ता ने अपना HTML टेक्स्ट पोस्ट नहीं किया है। मुझे संदेह है कि समस्या यह है कि उसके सीआईडी ​​यूआरएल विकृत थे - मैंने कभी भी इसका परीक्षण नहीं किया है।

सामग्री-आईडी हेडर कुछ इस पर सेट है:

Content-Type: image/jpeg 
Content-Disposition: inline 
Content-ID: [email protected] 

फिर HTML यह इतना तरह का उल्लेख होना चाहिए:

<img width="100" height="100" href="cid:[email protected]" /> 

विशेष रूप से, सीआईडी ​​यूआरएल उपसर्ग "सीआईडी ​​होना आवश्यक है : "लेकिन सामग्री-आईडी शीर्षलेख नहीं होना चाहिए। (एक guid सामग्री-आईडी के लिए एक अच्छा विकल्प है, सिवाय इसके कि इसमें @ प्रतीक होना चाहिए। अनुपालन करने के लिए, आप guid को '@u' जोड़ सकते हैं।)

यह ईमेल प्रदर्शित करने के लिए पर्याप्त है प्राप्त करने के अंत में। चाहे वह भेजने से पहले सही तरीके से पूर्वावलोकन में पूर्वावलोकन करे, मुझे नहीं पता।

आप भी इस सवाल को देखने के लिए इच्छा हो सकती है:

+0

आपके लिए दो + 1, महोदय। –