由Outlook VBA创建的草稿邮件在发送时给出“操作失败”错误

时间:2019-06-24 17:12:04

标签: outlook outlook-vba

在工作中,我们使用的是Outlook 2016,最近已升级到Microsoft Exchange。我们有各种从Excel或Access运行的VBA程序,它们可以创建Outlook电子邮件并将其保存在“草稿”文件夹中,以便在运行该程序后随时可以进行检查和手动发送。在我们转到Microsoft Exchange之前,这些程序曾经可以运行。 现在,当我双击运行的任何程序保存在“草稿”中的一封电子邮件时,Outlook拒绝发送该电子邮件,并报告错误“操作失败”。没有提供其他信息或错误代码。我的一位同事有同样的问题。其他人没有。从理论上讲,我们都应该具有相同版本的Outlook和Microsoft Exchange。 我发现可以直接在Outlook中运行代码来重现此问题。我做了Alt-F11,启用了宏,插入了一个模块,并将以下代码粘贴到了窗口中。

Sub TestEmail2()

Dim OutMail As Outlook.MailItem
Dim EmailTo As String
Dim EmailSubject As String

EmailTo = "me@myaddress.com"
EmailSubject = "Test Email 2"

Set OutMail = Application.CreateItem(0)

With OutMail
   .To = EmailTo
   .Subject = EmailSubject
   .Save
   .Close 0 ' olSave
End With

Set OutMail = Nothing

Debug.Print "Finished"
End Sub

如果我在“ Set OutMail = Nothing”上设置一个断点,然后将代码运行到该断点(因此“ Set OutMail = Nothing”尚未执行),则转到我的Drafts文件夹并尝试发送电子邮件,它将没有错误。如果我重新运行代码并允许它运行到完成状态,则尝试发送它生成的电子邮件时会收到错误消息。

我想(1)找到可以添加到代码中的变通办法以便发送消息,或者(2)找出我的Outlook配置文件出了什么问题,以便我可以请求IT帮助台进行更改,或自己更改。我不希望我们的IT服务台将我的个人资料重置为默认设置并丢失我的自定义设置。

1 个答案:

答案 0 :(得分:0)

通常表明通讯录已损坏。尝试使用ResolveResolveAll方法来根据地址簿解析收件人。

在同一Outlook配置文件中配置Google Apps Sync for Microsoft Outlook帐户和Microsoft Exchange Server帐户时,也可能会出现此问题。有关更多信息,请参见"The operation failed" error when you send email messages in Outlook

此外,还建议尝试通过“控制面板”修复Office,看看是否可以解决此问题。另外,您可以尝试修复PST文件。