如何告诉Outlook图像文件在哪里



请忍受我;有一个很长的故事。这是关于从编程中创建Delphi-7的HTML电子邮件,将其发送到Outlook,而不是在其中显示图片,因此,如果您对此一无所知,请不要全部阅读。

我有一个应用程序,该应用程序发送了从Delphi-7程序到Outlook的可变文本电子邮件。我使用的是TmailInfo项目,使用模板HTML文件进行布局,用程序中的数据替换占位符(%name%变为" Johnson"等),创建新的Outlook消息并以我的结果填充HTML。所有这些都可以。

最近,我的客户向我发送了一条新的示例消息,问我是否可以将此电子邮件更改为他发送给我的新布局。因此,我将电子邮件保存为HTML(来自Outlook,生成一个庞大的HTML文件,其中包含代码,对于像我这样的非HTML Guru来说几乎是可以理解的))),用我的占位符替换了静态数据,并将其保存为新的模板。

除了一件事外,这效果很好 - 新布局包括一些本地图片(公共网络资源不可用)。当来自Outlook的原始示例邮件创建了两件事 - 带有HTML代码的HTM文件,名为"主题"和一个称为" object_files"的文件夹,其中包含图片文件以及filelist.xml和一个MSO文件。

生成的html指的是src =" object_files/image001.jpg">等。

当我将HTML发送到Outlook时,显然不知道图像在哪里 - 但是我该如何告诉他?

我尝试的是:

  • 将" object_files"文件夹复制到"我的文档"

  • 用几种格式的硬编码到图片的链接(即

src =" c:/test/subject_files/image001.jpg",

src =" c://test/subject_files/image001.jpg",

src =" c: test objects_files image001.jpg",

等等

但两者都不起作用...所以我的问题确实是,如何告诉Outlook在编程创建HTML消息时查看图像文件的位置?

预先感谢!

一旦发送电子邮件,收件人就无法访问您的计算机,因此图像不会在电子邮件中显示。要在电子邮件中发送图像,您可以:

使用Aboslute链接

<img src="http://www.example.com/images/header.jpg">

使用嵌入式图像

将图像转换为base64,您可以在线找到许多网站, https://www.base64-image.de/然后

<img src="data:image/jpg;base64,/*base64-generated-string*/" />

如雷米(Remy)所述,图像可以作为常规附件添加。然后,您需要使用Attachment.PropertyAccessor.SetProperty设置PR_ATTACH_CONTENT_ID属性(DASL名称http://schemas.microsoft.com/mapi/proptag/0x3712001F)。HTML主体必须使用CID属性-<img src="cid:xyz">的匹配值,其中" XYZ"是PR_ATTACH_CONTENT_ID属性的值。

最新更新