【问题标题】:Outlook 2003+ Embedding signatures with images to all sent emailsOutlook 2003+ 将带有图像的签名嵌入到所有已发送的电子邮件中
【发布时间】:2012-10-27 18:23:26
【问题描述】:

我有一个 Win Form 应用程序,它会做一些无聊的会计工作,然后将其数据发送给一些幸运的收件人。我正在使用 Outlook 12.0 互操作对象,我的应用程序环境范围从 XP 上的 office 2003 到 Win 7 上的 office 2007。

我的问题在于将公司签名与已发送的电子邮件一起发送。 它包含两个图像,我想嵌入这些图像,使它们看起来是正文的一部分(假设接收邮件客户端支持)。

我尝试了几种不同的方法来实现这一点;但仍然没有运气!

我试过了:

  • 从签名文件夹中提取 html 数据,更改 html img 标记 src 属性以包含“文件///”。这会导致 Outlook 用“CID”替换“文件///”,我认为它也会嵌入 图像......我们永远不应该假设:|。这是我找到的方法 最适合获取签名的其余部分。

  • (新建 MailItem 后)- 抓取 MailItem 的 HTMLBody 并提取包括签名在内的相关部分......这个 由于新的 MailItem 对象非常不一致,因此无法正常工作 用它的签名。我的意思是有时新项目会 包括签名,有时它不会! :s 我不明白为什么它并不总是在那里,我的代码的其他部分没有改变!

我在这里阅读了另一篇关于 GetInspector 属性的帖子...显然只是调用它会做“一些事情”,并且签名会神奇地出现在您的邮件项目中...不!

我不能做的事:

  • 我不能(尽管我想)把图片放到网上 某处并在电子邮件 html 中指向它们。
  • 我无法使用 SMTP(它必须通过 Outlook...叹息)。

我认为最好的方法似乎是我最初处理 CID 的方法,但我不太了解 Outlook 在后台做什么,所以我无法弄清楚我还需要做什么做以获取与电子邮件一起发送的图像。

希望有人知道我做错了什么或者我可以尝试什么。

如果代码有帮助,请告诉我,我会发布,(尝试的大部分代码都来自这个站点......我只是无法再次找到链接,并试图避免让这个问题变得太长)。

非常感谢

【问题讨论】:

标签: c# .net outlook


【解决方案1】:

这不是您可以使用的最有效或最灵活的解决方案,但可能是最强大和最便携的解决方案。您可以将图像位图转换为纯 HTML 并将该 HTML 嵌入到您的电子邮件签名中。

转换很简单,可以使用我写的实用程序(开源)here

【讨论】:

  • Exchange 实际上阻止了这种情况,并将图像嵌入为实际文本(base64),并且客户在他们的电子邮件中获得了大量的页脚,更不用说它被视为垃圾邮件了。此外,海报想要的远不止这么简单。没有简单的方法,即使在交换中嵌入了 VBA 代码,每个用户都需要管理员权限来修改他们的注册表设置。 MS Exchange 是一头野兽!
  • 你能详细说明一下你认为交换的作用吗?我没有看到嵌入“纯 html”图像有任何问题。 Exchange 甚至不知道它曾经是一个图像,因为它只是一个带有彩色单元格的<table>。在几个 Outlook 版本上检查了我的代码。
猜你喜欢
  • 2018-04-27
  • 2012-12-08
  • 2012-04-07
  • 1970-01-01
  • 2021-10-31
  • 1970-01-01
  • 2015-07-29
  • 1970-01-01
  • 2022-09-25
相关资源
最近更新 更多