加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

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

发布时间:2020-12-15 09:45:54 所属栏目:大数据 来源:网络整理
导读:我需要在电子邮件中嵌入图像并在Outlook中发送之前预览电子邮件. CDO和赎回不是一种选择. 我尝试了以下代码,但图像只显示为一个小块. procedure AddAttachment(FullFileName: String; Attachments: Outlook2000.Attachments; CID: String); const PR_ATTACH_
我需要在电子邮件中嵌入图像并在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标头设置为:

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标头不能. (guid对于content-id是一个很好的选择,除了它必须包含一个@符号.为了遵守,你可以将’@ u’附加到guid.)

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

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

> Embedding images into html email with java mail

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读