我必须修改一个宏,将选定的邮件项目保存在不同的文件夹中,以保存在我公司的 SharePoint Online 上。
我们可以执行手动另存为,并通过在地址栏中输入 SharePoint 的 URL 将 .msg 文件添加到 SharePoint 文件夹。
想法是:
'for each mail selected (but generally there is only one mail selected):
For Each olkMsg In Outlook.ActiveExplorer.Selection
'Many actions done to collect information from mail
'Save the email in Sharepoint
olkMsg.SaveAs "https://MyCompany.sharepoint.com/sites/MyTeam/Shared Documents/TestArchives/TestXXX.msg", olMSG
我尝试对 URL 进行编码。运行时错误 -2147286788 (800300fc) 消失了,但 SharePoint 没有任何内容:
olkMsg.SaveAs "https%3A%2F%2FMyCompany.sharepoint.com%2Fsites%2FMyTeam%2FShared Documents%2FTestArchives%2FTestXXX.msg", olMSG
我尝试了UNC路径。它在我们的 Microsoft Cloud 上的 SharePoint 上不起作用:
olkMsg.SaveAs "\\MyCompany.sharepoint.com\sites\MyTeam\Shared Documents\TestArchives\TestXXX.msg", olMSG
我不介意中间步骤,例如先将文件保存在临时文件夹中,然后将其传输到 SharePoint。我尝试了没有成功,并删除了代码。
Outlook 的
MailItem.SaveAs
只能处理文件路径,它不处理 HTTP 服务器。
根据经验,如果您可以在 Windows 资源管理器中打开目标文件夹,那么只要您具有写入权限,就应该能够使用
MailItem.SaveAs
。