首页 > 解决方案 > MS Outlook VBA 通过身份验证将电子邮件附件上传到 Sharepoint

问题描述

我仍然是使用 VBA 的初学者,我一直在试图弄清楚如何通过 MS Outlook 中的 VBA 将文件上传到 Sharepoint。我尝试将 Sharepoint 映射到我的网络驱动器等,但无济于事。

我的代码如下:

Public Sub saveAttachSentDate(MItem As Outlook.MailItem)

Dim oAttachment As Outlook.Attachment
Dim sSaveFolder As String
Dim file As String
Dim DateFormat As String

sSaveFolder = "(URL of the sharepoint along with the folder to save it on)"


For Each oAttachment In MItem.Attachments
DateFormat = Format(MItem.SentOn - 1, "mm.dd.yy ")
file = sSaveFolder & DateFormat & oAttachment.DisplayName
oAttachment.SaveAsFile sSaveFolder & DateFormat & oAttachment.DisplayName
Next

End Sub

我的文件名标记如下:“[我的部门] -(客户名称)电话摘要”

我总是收到这个错误

“运行时错误‘2147024735 (800700a1)’:无法保存附件。文件名或目录名无效。”

我认为可能的原因是我上传到的共享点每次访问时都需要用户名和密码。我使用不需要登录凭据的相同代码尝试了另一个共享点,它工作得很好。我似乎找不到解决方法,我将不胜感激!

标签: vbasharepointoutlook

解决方案


传递给SaveAsFile方法的路径不能由 URL 字符串或网络位置表示。您需要指定一个本地文件夹,您可以从该文件夹开始上传文件。Outlook 对象模型不提供将文件上传到任何 Web 服务器的任何功能,因此您必须自己完成。为了让它工作,我建议开发一个 COM 加载项。例如,基于 VSTO 的加载项构建在 .net 框架之上,可以使用 BCL 类来处理。请参阅演练:为 Outlook 创建您的第一个 VSTO 外接程序以快速入门。


推荐阅读