我需要在電子郵件中嵌入圖像並在Outlook中發送電子郵件之前預覽電子郵件。 CDO和贖回不是一種選擇。使用擴展的mapi功能將圖像嵌入到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;
是否使用HTML格式?您是否使用嵌入圖片的CID網址? – Ben 2012-06-16 10:23:37
@Ben他應該使用HTML格式嗎?有沒有涉及CID URL的解決方案?我相信他會使用你的答案給出的任何東西 - 只要你使用MAPI,並且當用戶的電子郵件客戶端是Outlook時,它就可以工作。 – 2012-10-12 13:31:43
@IanBoyd,我希望他**是**使用CID URL *現在他知道他們* ... – Ben 2012-10-12 13:42:36