outlook是一款邮件客户端软件,可以用于收发邮件。
它可以一次性添加多个邮箱账户。
当用vba操作outlook发送邮件时,如果有多个邮箱账户,需要先判断或者设置下用哪个邮箱账户进行发送。
要用vba访问 outlook 中的所有数据,需要从根对象NameSpace开始,它代表了任意数据源的根对象。
要返回NameSpace对象,可以通过GetNameSpace方法,在outlook中只能通过GetNamespace(“MAPI”) 或者 Session属性返回NameSpace对象。
如果要读取某个指定的邮箱账号下的收件箱下的所有邮件项目,可以使用如下的代码:
Sub QQ1722187970()
Dim objAccount As Outlook.Account
Dim objOutlookApp As Outlook.Application
Set objOutlookApp = New Outlook.Application
Dim objNamespace As Outlook.Namespace
Dim objFolders As Outlook.Folders
Dim objFolders1 As Outlook.Folders
Dim objFolder As Outlook.Folder
Dim objFolder1 As Outlook.Folder
Dim objItem As Outlook.MailItem
With objOutlookApp
Set objNamespace = .Session
'与Session属性一样的效果
Set objNamespace = .GetNamespace("MAPI")
With objNamespace
'遍历所有文件夹
Set objFolders = .Folders
For Each objFolder In objFolders
With objFolder
sName = .Name
'判断邮箱账号名称
If sName = "1722187970@qq.com" Then
Set objFolders1 = .Folders
'遍历该账号下的所有文件夹
For Each objFolder1 In objFolders1
sName1 = objFolder1.Name
If sName1 = "收件箱" Then
'如果是收件箱就遍历所有邮箱项目
With objFolder1
For I = .Items.Count To 1 Step -1
Set objItem = .Items(I)
With objItem
Debug.Print .Subject
End With
Next I
End With
End If
Next
End If
End With
Next
End With
End With
End Sub


发表评论