Vba 将outlook电子邮件保存到我的内部驱动器作为.msg文件
我正在尝试将Outlook电子邮件保存到我的H:Drive中。我希望它作为一个运行脚本的规则,但我无法让它工作。没有涉及任何附件,我只需要将其保存为.msg文件。如果您找到不同的方法来解决此问题,请联系我们 谢谢Vba 将outlook电子邮件保存到我的内部驱动器作为.msg文件,vba,outlook,Vba,Outlook,我正在尝试将Outlook电子邮件保存到我的H:Drive中。我希望它作为一个运行脚本的规则,但我无法让它工作。没有涉及任何附件,我只需要将其保存为.msg文件。如果您找到不同的方法来解决此问题,请联系我们 谢谢 Sub ExtractEmailToFolder2(itm As Outlook.MailItem) Dim OlApp As Outlook.Application Set OlApp = New Outlook.Application Dim Mailobject As Obje
Sub ExtractEmailToFolder2(itm As Outlook.MailItem)
Dim OlApp As Outlook.Application
Set OlApp = New Outlook.Application
Dim Mailobject As Object
Dim Email As String
Dim NS As NameSpace
Dim Folder As MAPIFolder
Set OlApp = CreateObject("Outlook.Application")
Dim fso As Object
Dim fldrname As String
Dim fldrpath As String
' Setup Namespace
Set NS = ThisOutlookSession.Session
' Display select folder dialog
Set Folder = NS.PickFolder
' Create Folder File
Set fso = CreateObject("Scripting.FileSystemObject")
' loop to read email address from mail items.
For Each Mailobject In Folder.Items
fldrpath = "H:\Backup stuff\"
If Not fso.folderexists(fldrpath) Then
fso.createfolder (fldrpath)
End If
Set objCopy = Mailobject.Copy
objCopy.SaveAs fldrpath & "\" & objCopy.Subject, olMSG
Next
Set OlApp = Nothing
Set Mailobject = Nothing
End Sub
问题:
Sub ExtractEmailToFolder2()
Dim OlApp As Outlook.Application
Set OlApp = New Outlook.Application
Dim Mailobject As Object
Dim Email As String
Dim NS As NameSpace
Dim Folder As MAPIFolder
Set OlApp = CreateObject("Outlook.Application")
Dim fso As Object
Dim fldrname As String
Dim fldrpath As String
' Setup Namespace
Set NS = ThisOutlookSession.Session
' Display select folder dialog
Set Folder = NS.PickFolder
' Create Folder File
Set fso = CreateObject("Scripting.FileSystemObject")
fldrpath = "H:\Backup stuff\"
If Not fso.folderexists(fldrpath) Then
fso.createfolder (fldrpath)
End If
' loop to read email address from mail items.
i = 1
For Each Mailobject In Folder.Items
Mailobject.SaveAs fldrpath & "\mail" & i & ".msg", olMsg
i = i + 1
Next
Set OlApp = Nothing
Set Mailobject = Nothing
End Sub
- 循环中包含文件夹检查
- 文件名中有主题。除非进行某种操作,否则这总是会产生问题。因为它包含Windows中文件名中不允许的各种字符
Sub ExtractEmailToFolder2()
Dim OlApp As Outlook.Application
Set OlApp = New Outlook.Application
Dim Mailobject As Object
Dim Email As String
Dim NS As NameSpace
Dim Folder As MAPIFolder
Set OlApp = CreateObject("Outlook.Application")
Dim fso As Object
Dim fldrname As String
Dim fldrpath As String
' Setup Namespace
Set NS = ThisOutlookSession.Session
' Display select folder dialog
Set Folder = NS.PickFolder
' Create Folder File
Set fso = CreateObject("Scripting.FileSystemObject")
fldrpath = "H:\Backup stuff\"
If Not fso.folderexists(fldrpath) Then
fso.createfolder (fldrpath)
End If
' loop to read email address from mail items.
i = 1
For Each Mailobject In Folder.Items
Mailobject.SaveAs fldrpath & "\mail" & i & ".msg", olMsg
i = i + 1
Next
Set OlApp = Nothing
Set Mailobject = Nothing
End Sub
- 将其放入Outlook的任何模块中,并使用F5或创建快捷方式运行
Sub ExtractEmailToFolder2()
Dim OlApp As Outlook.Application
Set OlApp = New Outlook.Application
Dim Mailobject As Object
Dim Email As String
Dim NS As NameSpace
Dim Folder As MAPIFolder
Set OlApp = CreateObject("Outlook.Application")
Dim fso As Object
Dim fldrname As String
Dim fldrpath As String
' Setup Namespace
Set NS = ThisOutlookSession.Session
' Display select folder dialog
Set Folder = NS.PickFolder
' Create Folder File
Set fso = CreateObject("Scripting.FileSystemObject")
fldrpath = "H:\Backup stuff\"
If Not fso.folderexists(fldrpath) Then
fso.createfolder (fldrpath)
End If
' loop to read email address from mail items.
i = 1
For Each Mailobject In Folder.Items
Mailobject.SaveAs fldrpath & "\mail" & i & ".msg", olMsg
i = i + 1
Next
Set OlApp = Nothing
Set Mailobject = Nothing
End Sub
问题:
Sub ExtractEmailToFolder2()
Dim OlApp As Outlook.Application
Set OlApp = New Outlook.Application
Dim Mailobject As Object
Dim Email As String
Dim NS As NameSpace
Dim Folder As MAPIFolder
Set OlApp = CreateObject("Outlook.Application")
Dim fso As Object
Dim fldrname As String
Dim fldrpath As String
' Setup Namespace
Set NS = ThisOutlookSession.Session
' Display select folder dialog
Set Folder = NS.PickFolder
' Create Folder File
Set fso = CreateObject("Scripting.FileSystemObject")
fldrpath = "H:\Backup stuff\"
If Not fso.folderexists(fldrpath) Then
fso.createfolder (fldrpath)
End If
' loop to read email address from mail items.
i = 1
For Each Mailobject In Folder.Items
Mailobject.SaveAs fldrpath & "\mail" & i & ".msg", olMsg
i = i + 1
Next
Set OlApp = Nothing
Set Mailobject = Nothing
End Sub
- 循环中包含文件夹检查
- 文件名中有主题。除非进行某种操作,否则这总是会产生问题。因为它包含Windows中文件名中不允许的各种字符
Sub ExtractEmailToFolder2()
Dim OlApp As Outlook.Application
Set OlApp = New Outlook.Application
Dim Mailobject As Object
Dim Email As String
Dim NS As NameSpace
Dim Folder As MAPIFolder
Set OlApp = CreateObject("Outlook.Application")
Dim fso As Object
Dim fldrname As String
Dim fldrpath As String
' Setup Namespace
Set NS = ThisOutlookSession.Session
' Display select folder dialog
Set Folder = NS.PickFolder
' Create Folder File
Set fso = CreateObject("Scripting.FileSystemObject")
fldrpath = "H:\Backup stuff\"
If Not fso.folderexists(fldrpath) Then
fso.createfolder (fldrpath)
End If
' loop to read email address from mail items.
i = 1
For Each Mailobject In Folder.Items
Mailobject.SaveAs fldrpath & "\mail" & i & ".msg", olMsg
i = i + 1
Next
Set OlApp = Nothing
Set Mailobject = Nothing
End Sub
- 将其放入Outlook的任何模块中,并使用F5或创建快捷方式运行
Sub ExtractEmailToFolder2()
Dim OlApp As Outlook.Application
Set OlApp = New Outlook.Application
Dim Mailobject As Object
Dim Email As String
Dim NS As NameSpace
Dim Folder As MAPIFolder
Set OlApp = CreateObject("Outlook.Application")
Dim fso As Object
Dim fldrname As String
Dim fldrpath As String
' Setup Namespace
Set NS = ThisOutlookSession.Session
' Display select folder dialog
Set Folder = NS.PickFolder
' Create Folder File
Set fso = CreateObject("Scripting.FileSystemObject")
fldrpath = "H:\Backup stuff\"
If Not fso.folderexists(fldrpath) Then
fso.createfolder (fldrpath)
End If
' loop to read email address from mail items.
i = 1
For Each Mailobject In Folder.Items
Mailobject.SaveAs fldrpath & "\mail" & i & ".msg", olMsg
i = i + 1
Next
Set OlApp = Nothing
Set Mailobject = Nothing
End Sub
首先,如果VBA宏按规则运行,则无需创建新的Outlook
应用程序
实例(在示例代码中创建两次!)。相反,您可以使用全局应用程序属性:
Sub ExtractEmailToFolder2(itm As Outlook.MailItem)
Dim fso As Object
Dim fldrname As String
Dim fldrpath As String
' Create Folder if required
Set fso = CreateObject("Scripting.FileSystemObject")
fldrpath = "H:\Backup stuff\"
If Not fso.folderexists(fldrpath) Then
fso.createfolder (fldrpath)
End If
itm.SaveAs fldrpath & "\" & "your_unique_filename.msg", olMSG
Set OlApp = Nothing
Set Mailobject = Nothing
End Sub
上面显示的示例代码将针对其运行规则的项目保存到指定/硬编码的文件夹中。首先,如果VBA宏按规则运行,则无需创建新的Outlook应用程序
实例(在示例代码中两次!)。相反,您可以使用全局应用程序属性:
Sub ExtractEmailToFolder2(itm As Outlook.MailItem)
Dim fso As Object
Dim fldrname As String
Dim fldrpath As String
' Create Folder if required
Set fso = CreateObject("Scripting.FileSystemObject")
fldrpath = "H:\Backup stuff\"
If Not fso.folderexists(fldrpath) Then
fso.createfolder (fldrpath)
End If
itm.SaveAs fldrpath & "\" & "your_unique_filename.msg", olMSG
Set OlApp = Nothing
Set Mailobject = Nothing
End Sub
上面显示的示例代码将针对其运行规则的项目保存到指定/硬编码的文件夹。Ah好的。不过,我的代码还是有问题。“itm.SaveAs fldrpath&“\”&objCopy.Subject,olMSG”,这行代码不断出现错误。outlook规则接收电子邮件后,脚本应保存电子邮件,但每次都会在脚本的该行停止。请确保文件名和路径不包含禁止的符号。嗯,手动键入文件名没有问题。问题是我每天都收到这封电子邮件,所以我试图在文件名中包含这些数据。例如,发布(仪表盘)8(仪表盘)06(仪表盘)19。第二天它将是为“…\u 08\u 07\u 19.Ah好的,但是我仍然有代码问题。”itm.SaveAs fldrpath&“\”&objCopy.Subject,olMSG“,这条线一直在窃听。outlook规则接收电子邮件后,脚本应保存电子邮件,但每次都会在脚本的该行停止。请确保文件名和路径不包含禁止的符号。嗯,手动键入文件名没有问题。问题是我每天都收到这封电子邮件,所以我试图在文件名中包含这些数据。例如,发布(仪表盘)8(仪表盘)06(仪表盘)19。第二天就要到了“……谢谢!!那么,你是说无论电子邮件主题是什么,保存都很有挑战性吗?这并不具有挑战性,你所要做的就是确保在保存时,文件夹名称中不包含任何不允许的字符。类似于删除文件夹名称中不允许的所有:
。长度也在限制范围内。若要提取电子邮件的主题,我可以使用mailobject.subject吗?是的,您可以。。如果答案解决了您的问题,请接受并投票:)谢谢!!那么,你是说无论电子邮件主题是什么,保存都很有挑战性吗?这并不具有挑战性,你所要做的就是确保在保存时,文件夹名称中不包含任何不允许的字符。类似于删除文件夹名称中不允许的所有:
。长度也在限制范围内。若要提取电子邮件的主题,我可以使用mailobject.subject吗?是的,您可以。。如果答案解决了您的问题,请接受并投票:)