Outlook 邮件项目缓存问题,当保存在 vb.net 中



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

很简单的东西!

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

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

 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 强制到另一个位置并重新加载模板,但没有运气。

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

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

最新更新