在邮件中包括来自网站的图像.HTMLBody.
本文关键字:网站 图像 HTMLBody 包括 | 更新日期: 2023-09-27 18:33:27
我目前正在为Microsoft Outlook开发一个加载项,该加载项在html正文的标记之前添加图像。 此映像位于远程服务器上,因此映像标记的来源http://someserver.com/image.jpg
这在一封新电子邮件(又名新电子邮件)上完全符合预期但是,当用户单击回复或由于某种原因转发时,图像源将更改为cid:image001.jpg并且实际的图像源将放在alt标记中。
我正在更改发送事件的正文,因为我希望在电子邮件写入完成后添加图像。
在发送事件中运行的代码
void OutlookApplication_ItemSend(object Item, ref bool Cancel)
{
if (Item is Outlook.MailItem)
{
Outlook.MailItem mailItem = (Outlook.MailItem)Item;
string image = "<img src='http://someserver.com/attach.jpg' width='"100'" height='"225'" alt='"'" />";
string body = mailItem.HTMLBody;
body = body.Replace("</body>", image + "</body>");
mailItem.BodyFormat = Outlook.OlBodyFormat.olFormatHTML;
mailItem.HTMLBody = body;
}
}
所以我找到了一种方法。 我最终不得不做的是创建一个新的邮件项目,将现有的邮件复制到其中,修改并发送该项目并取消原始邮件。 以下代码显示了我是如何做到的:
void OutlookApplication_ItemSend(object Item, ref bool Cancel)
{
if (Item is Outlook.MailItem)
{
Outlook.Inspector currInspector;
currInspector = outlookApplication.ActiveInspector();
Outlook.MailItem oldMailItem = (Outlook.MailItem)Item;
Outlook.MailItem mailItem = oldMailItem.Copy();
string image = "<img src='http://someserver.com/attach.jpg' width='"1'" height='"1'" alt='"'" />";
string body = mailItem.HTMLBody;
body = body.Replace("</body>", image+"</body>");
mailItem.BodyFormat = Outlook.OlBodyFormat.olFormatHTML;
mailItem.HTMLBody = body;
mailItem.Send();
Cancel = true;
currInspector.Close(Outlook.OlInspectorClose.olDiscard);
}
}
我建议在...元素。可以在以下系列文章中阅读有关 HTML 呈现功能的详细信息:
- Outlook 2007 中的 Word 2007 HTML 和 CSS 呈现功能(第 1 部分,共 2 部分)
- Outlook 2007 中的 Word 2007 HTML 和 CSS 呈现功能(第 2 部分,共 2 部分)
Word 在最新的 Outlook 版本中用作电子邮件编辑器。
您对 ItemSend 事件处理程序有任何问题吗?行得通吗?