使用 Outlook VBA 在 SharePoint Online 中保存邮件项目

问题描述 投票:0回答:2

我必须修改一个宏,将选定的邮件项目保存在不同的文件夹中,以保存在我公司的 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。我尝试了没有成功,并删除了代码。

vba outlook sharepoint-online
2个回答
1
投票

Outlook 的

MailItem.SaveAs
只能处理文件路径,它不处理 HTTP 服务器。

根据经验,如果您可以在 Windows 资源管理器中打开目标文件夹,那么只要您具有写入权限,就应该能够使用

MailItem.SaveAs


0
投票

我没有设法使用 MailItem.SaveAs 直接保存到共享点。 并且不知道为什么当我们执行手动 SaveAs 并粘贴 URL 时它会起作用...不幸的是 MailItem.SaveAs 与 WorkBook.SaveAs 完全不同(它与 HTTP URL 一起工作正常)。

作为解决方法,我在 Sharepoint 中创建了文件夹到 OneDrive 的快捷方式: enter image description here

然后把这个快捷方式的路径放入

mailItem.SaveAs "C:\Users\USERID\OneDrive - MyCompany\FolderNameInSharepoint"

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.