Vba 如何在Outlook中保存已发送邮件
如何将已发送的信件保存到所选文件夹?Vba 如何在Outlook中保存已发送邮件,vba,outlook,Vba,Outlook,如何将已发送的信件保存到所选文件夹? Item.SaveSentMessageFolder不工作。 调试期间没有错误 Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean) Dim message As String Dim header As String Dim selectFolderName As String Dim selectFolderIt
Item.SaveSentMessageFolder
不工作。
调试期间没有错误
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
Dim message As String
Dim header As String
Dim selectFolderName As String
Dim selectFolderItem As Outlook.MAPIFolder
Dim oOutlook As New Outlook.Application
Dim MyData As DataObject
Set MyData = New DataObject
message = "Do you want to save the letter to a folder?"
header = "Save"
If MsgBox(message, vbYesNo + vbQuestion, header) = vbYes Then
SavePopUp.Show
MyData.GetFromClipboard
selectFolderName = MyData.GetText(1)
Set oNameSpace = oOutlook.GetNamespace("MAPI")
Set selectFolderItem = oNameSpace.Folders(1).Folders.Item("Projects").Folders.Item(selectFolderName)
Set Item.SaveSentMessageFolder = selectFolderItem
End If
End Sub
首先,不要硬编码存储索引(1)。按名称访问它。
其次,只能将SaveSentMessageFolder设置为邮件所在的同一存储区的文件夹。这就是您要做的吗
您是否已检查selectFolderItem是否不为空?硬编码文件夹索引(OnNamespace.Folders(1))是一个非常糟糕的主意。是的,我检查了指定的路径是否有效这不是我所问的-您是否在运行时(通过放置断点)检查selectFolderItem变量是否为空?是的,我检查了。指定的文件夹是正确的。谢谢提示。但在发送信件后,它仍然不会保存到文件夹中。不,这是我的文件夹。我不需要保存到文件系统中。我在outlook中创建的Av文件夹
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
Dim Select_Folder As folder
Dim message As String
message = "Do you want to save the letter to a folder?"
Dim header As String
header = "Save"
If TypeName(Item) = "MailItem" And Item.DeleteAfterSubmit = False Then
If MsgBox(message, vbYesNo + vbQuestion, header) = vbYes Then
'Display dialog box
Set Select_Folder = Application.Session.PickFolder
Set Item.SaveSentMessageFolder = Select_Folder
End If
End If
End Sub