Outlook 使用mailItem.Attachments.Add索引超出范围

Outlook 使用mailItem.Attachments.Add索引超出范围,outlook,vsto,Outlook,Vsto,我们已经创建了一个outlook加载项,这样用户就可以在outlook中按一个按钮并自动将pdf文件添加为附件,从而节省他们在系统上尝试查找pdf文件的时间 尝试了使用mailItem.Attachments.Add的不同方法,但它们似乎都有相同的问题 Private Sub OfficeAccount_Click(sender As Object, e As RibbonControlEventArgs) Handles OfficeAccount.Click Dim theAtta

我们已经创建了一个outlook加载项,这样用户就可以在outlook中按一个按钮并自动将pdf文件添加为附件,从而节省他们在系统上尝试查找pdf文件的时间

尝试了使用mailItem.Attachments.Add的不同方法,但它们似乎都有相同的问题

Private Sub OfficeAccount_Click(sender As Object, e As RibbonControlEventArgs) Handles OfficeAccount.Click

    Dim theAttachment = "http://webapps/Intranet/Home/Office/Documents/Template.pdf"

    Dim item = TryCast(Me.Context, Outlook.Inspector)
    Dim mailItem = TryCast(item.CurrentItem, Outlook.MailItem)

    mailItem.Attachments.Add(theAttachment, , , "Template")

    Marshal.ReleaseComObject(mailItem)

End Sub
它通常会添加附件,但有时会停止添加附件,并表示索引超出范围


然后,它也会停止允许正常添加附件,并显示相同的错误消息。附件的来源可以是文件(用文件名表示的完整文件系统路径)或构成附件的Outlook项目

您需要在本地下载文件,然后从硬盘上附加文件

Sub AddAttachment() 
 Dim myItem As Outlook.MailItem 
 Dim myAttachments As Outlook.Attachments  
 Set myItem = Application.CreateItem(olMailItem) 
 Set myAttachments = myItem.Attachments 
 myAttachments.Add "C:\Test.doc", olByValue, 1, "Test" 
 myItem.Display 
End Sub

谢谢Eugene,一个本地文件也进行了测试,但我发现同样的问题也发生了。在这种情况下,您的文件路径是什么?