0

我有一个小型 WinForms 程序,它允许我的用户为我们的客户创建电子邮件群发。该应用程序有两种选择:一种是用于设计电子邮件的 HTML 编辑器(效果很好),第二种是导入 .msg 或 .oft 模板。电子邮件完成后,将被移至共享的 Outlook 邮件文件夹,以进行夜间宏发送作业。

很简单的东西!

问题:一旦模板在应用程序前景中打开,似乎缓存该版本。如果用户决定退出,则在模板中进行更改,Outlook 不会获取更新。

注意:如果用户单击“预览”按钮,他们会在收件箱中收到正确的更新版本。但是当他们提交 MailItem 时,它会选择旧版本。

 Dim newItem  as Outlook.MailItem = gobjOutlook.CreateItemFromTemplate(fileEmailTemplate.FileName)

发送命令工作正常newItem.Send()

但是当我将它移动到共享文件夹时,它会从某个地方获取原始版本。

Dim addFldr As Outlook.MAPIFolder
addFldr = StoreFLDR.Folders.Add(gobjNamespace.CurrentUser.Name & ": " & DateTime.Now.ToString())
newItem.Save()                 
newItem.Move(addFldr )

我尝试将 GC 和 SaveAs 强制到另一个位置并重新加载模板,但没有运气。

4

1 回答 1

0

我建议从立即发布底层 COM 对象开始。使用System.Runtime.InteropServices.Marshal.ReleaseComObject在您使用完 Outlook 对象后释放它。然后在 Visual Basic 中将变量设置为 Nothing(在 C# 中为 null)以释放对对象的引用。

您可能会发现如何:根据模板创建新的 Outlook 邮件文章很有帮助。无论如何,很高兴看到您与 Outlook 相关的完整源代码。

于 2015-02-03T11:45:44.743 回答