gpt4 book ai didi

html - Outlook HTML 邮件 - 将链接项目更改为嵌入

转载 作者:行者123 更新时间:2023-11-28 02:19:08 24 4
gpt4 key购买 nike

我正在尝试通过 Outlook.MailItem 使用 C# 3 发送 HTML 格式的电子邮件

Outlook.MailItem objMail = (Outlook.MailItem)olkApp.CreateItem(Outlook.OlItemType.olMailItem);
objMail.To = to;
objMail.Subject = subject;
objMail.HTMLBody = htmlBody;

电子邮件是通过从 RTF 控件(TX 文本控件)保存而在外部生成的,它会生成 HTML,其中包含指向存储在 <<FileName>> 中的图像的链接。 _files 子目录。示例:

<img border="0" src="file:///C:/Documents%20and%20Settings/ItsMe/Local%20Settings/Temp/2/zbt4dmvs_Images/zbt4dmvs_1.png" width="94" height="94" alt="[image]">

以这种方式发送电子邮件会生成一封带有损坏链接的邮件。

使用 Outlook 2007 作为电子邮件客户端,使用 Word 作为电子邮件编辑器,切换到 RTF(选项选项卡,格式选项卡组)保留布局内联图像。

通过以下方式以编程方式执行此操作:

var oldFormat = objMail.BodyFormat;
objMail.BodyFormat = Outlook.OlBodyFormat.olFormatRichText;
objMail.BodyFormat = oldFormat;

丢失格式并破坏图像(图像变成屏幕上的 [image] 链接标记,可点击但不再显示图像)。这并不奇怪,因为 MailItem.BodyFormat Property 的文档说“BodyFormat 属性从 RTF 切换到 HTML 时,所有文本格式都将丢失,反之亦然”。

遗憾的是,似乎没有一种简单的方法来更改 Type每个 AttachmentMailItem.AttachementsOlAttachmentType.olByValue ,因为它是在您创建 Attachment 时设置的只读属性.

想到的一种方法是遍历 HTML,替换 <code><img></code>带有标记的标签并以编程方式遍历 MailItem文本,插入 Outlook.AttachmentType OlAttachmentType.olByValue .

另一种选择是转换 <code><img></code>使用链接 <code>src="cid:uniqueIdN"</code>并将图像添加为具有引用身份的附件。

所以,对于这个问题...有没有办法将链接图像转换为嵌入图像,最好不需要使用像 Redemption 这样的第三方工具?转换为 RTF 恰好会产生结果,但这样做绝不是先决条件,而且显然可能会失去保真度 - 我只是希望它能正常工作 :D 我现有的想法对我来说都不是很干净。

最佳答案

由于您使用的是 .net > 2.0,您可能需要查看 System.Net.Mail 命名空间以创建邮件消息。我发现它非常可定制,并且非常容易用于与您类似的任务。我遇到的唯一问题是确保我使用的是正确的 encoding ,并且我必须使用 HTML 表格进行布局(css 无法正常工作)。这里有一些链接向您展示这是如何工作的......

如果那不是一个选项,那么我建议使用 Content ID 路线并将图像作为附件嵌入。您的另一种选择是在网站上公开托管图像,并将 html 中的图像链接更改为公共(public)图像。

您应该意识到 HTML 电子邮件很容易看起来像垃圾邮件,并且可以被电子邮件服务器和客户端视为垃圾邮件。即使是仅供内部使用的邮件(它发生在我身上)也可能最终出现在 Outlook 的垃圾邮件文件夹中。

关于html - Outlook HTML 邮件 - 将链接项目更改为嵌入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/503066/

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