gpt4 book ai didi

delphi - 使用扩展的 mapi 函数将图像嵌入到 Outlook

转载 作者:行者123 更新时间:2023-12-03 15:14:25 27 4
gpt4 key购买 nike

我需要在电子邮件中嵌入图像并在 Outlook 中发送之前预览电子邮件。 CDO 和赎回不是一个选择。

我尝试了以下代码,但图像只是显示为一个小块。

  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 网址格式错误 - 但我还没有测试过这一点。

如果 Content-ID header 设置为:

Content-Type: image/jpeg
Content-Disposition: inline
Content-ID: afd383988e86ad958709@u

然后 HTML 应该像这样引用它:

<img width="100" height="100" href="cid:afd383988e86ad958709@u" />

特别是,cid URL 必须具有前缀“cid:”,但 content-id header 不得具有前缀。 (guid 是 content-id 的不错选择,但它必须包含 @ 符号。为了遵守规定,您可以将“@u”附加到 guid。)

这足以让电子邮件在接收端正确显示。发送前是否可以在 Outlook 中正确预览,我不知道。

您可能还希望看到这个问题:

关于delphi - 使用扩展的 mapi 函数将图像嵌入到 Outlook,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3359410/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com