【发布时间】:2017-10-01 09:22:26
【问题描述】:
我在 Excel 2010 中编写了一个程序,用于筛选选定 Outlook 2010 文件夹中的电子邮件,并从电子邮件 (html) 正文中提取信息。
我更新到 Office 2016。从那时起,我在使用 MailItem 对象的某些属性时遇到错误。我可以将电子邮件的主题拉入 Excel,但某些属性会导致“对象'_mailItem 的方法'正文'”失败错误(包括 .Body 和 .To 属性)。
下面是简化版的代码:
Sub GatherInfo()
Dim ObjOutlook As Object
Dim MyNamespace As Object
Dim FormFolder As Object
Set ObjOutlook = GetObject(, "Outlook Application")
Set MyNamespace = ObjOutlook.GetNamespace("MAPI")
Set FormFolder = MyNamespace.PickFolder
For i = 1 To FormFolder.Items.Count
Range("A2").Select
ActiveCell.Value = FormFolder.Items(i).Subject
ActiveCell.Offset(0, 1).Value = FormFolder.Items(i).To
End Sub
这会导致:
运行时错误“-2147467259(80004005)”:
对象'_MailItem'的方法'To'失败
我做了一些研究,想知道 Outlook 2016 的安全设置是否应该归咎于此。 这是一个企业电子邮件帐户,在 Exchange 服务器上运行。您认为这会阻止我访问电子邮件的正文/发件人吗?
奇怪的是,电子邮件的主题属性有效,但正文/到属性无效。
我已经排除的事情:
1) 我发送了纯文本和基于 html 的电子邮件,结果相同。
2) 我尝试过早绑定 Outlook 对象(将 ObjOutlook 设置为 Outlook.Application 等)
我确保只有邮件项目,没有日历项目等。
它会在第一次碰到项目时跳闸。到分配。如果我在resume next 中插入一行,那么它将遍历所有电子邮件,但只会记录主题而不是 .To 属性。
【问题讨论】:
-
Outlook 2016 for mac 还是 windows?
-
这个答案建议从 Outlook stackoverflow.com/a/58964879开始
标签: excel vba email import outlook