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
发表评论