【发布时间】:2013-09-10 20:14:37
【问题描述】:
我使用 Outlook Redemption dll 用 c# 语言创建 Outlook 消息模板。
下面是我的代码:
RedemptionLoader.DllLocation64Bit = Server.MapPath("~/bin/dlls/Redemption64.dll");
RedemptionLoader.DllLocation32Bit = Server.MapPath("~/bin/dlls/Redemption.dll");
Interop.Redemption.RDOSession session = RedemptionLoader.new_RDOSession();
var msg = session.GetMessageFromMsgFile(templatePath);
msg.Subject = String.Format("Report");
String ImageString = Server.MapPath("~\\FolderName") + "\\" + ImageName;
RDOAttachment Attach = msg.Attachments.Add(ImageString);
Attach.ContentID = "image1";
String htb = "<html><head><title>The Title</title></head><body><h1>This is some text</h1>Image 1<br /><img src=cid:image1><br /></body></html>";
msg.HTMLBody = htb;
msg.Save();
msg.SaveAs(newPath);
所有工作和图像都保存到新位置。但是当我检查那个消息模板时,我在任何地方都看不到图像。它给了我错误,而不是图像。
更新 我没有尝试嵌入图像,而是尝试附加此文件。但是当我打开文件时,我没有看到任何附件。我用 OutlookSpy 检查附件总数,它显示了 0 个附件。我的代码附件错误吗?
【问题讨论】:
-
您是否使用 OutlookSpy(单击 OpenIMsgOnIStg)查看了 MSG 文件以检查 HTML 是否正确以及附件是否存在正确的 PR_ATTACH__CONTENTID 值?
-
我对outlookspy不熟悉,能不能详细点?
-
单击 OpenIMsgOnIStg - 您将看到 IMessage 窗口。检查 PR_HTML 和 PR_RTF_COMPRESSSED 属性。转到 GetAttachmentTabel 选项卡 - 双击附件。 PR_ATTACH_CONTENTID 属性设置是否正确?
-
我检查了这个属性,在 PR_RTF-COMPRESSED 上,我可以看到带有 cid:image1 的 img 标签,但在 GetAttachmentTable 上,我没有看到任何附件????
-
截图的主题与您代码中设置的主题不匹配。可能是您的实际代码与您在此处发布的代码(非常轻微)不同吗?另外,考虑到 Server.MapPath,您是从 Web 应用程序运行它吗?
标签: c# outlook outlook-redemption