我需要在电子邮件中嵌入图像并在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