Let us now create a sample script in QTP that would access the Outlook Object Model and use it to open Outlook and display the Inbox folder.
In the Outlook Object Model, ‘Application’ Object is the topmost or parent Object that represents the entire Outlook Application. So we’ll first create an instance of Outlook.Application object like below.
Set objOutlook = CreateObject("Outlook.Application")
*******************************************************************************
GetNameSpace() Method :
-> Returns a NameSpace object of the specified type.
-> The Namespace object is multiple objects. The object itself provides methods for logging in and out, accessing storage objects directly by ID, accessing certain special default folders directly, and accessing data sources owned by other users.
Syntax : ApplicationObject.GetNameSpace(Type)
Type is Required String. The type of name space to return.
Example :
ApplicationObject.GetNameSpace ("MAPI") - To return the Outlook NameSpace object from the Application object.
The only data source supported is MAPI, which allows access to all Outlook data stored in the user's mail stores.GetNamespace method used to bind to the MAPI namespace.
*******************************************************************************
MAPIFolder object
The MAPIFolder object represents a folder that contains email messages, tasks, contacts and various other items. MS Outlook provides a total of 16 default MAPIFolder objects.
Example : olFolderInbox represents the Inbox folder. Similarly olFolderOutbox, olFolderSentMail, olFolderDeletedItems represent Outbox, Sent Mail & Deleted Items folders respectively.
MAPIFolder provides 16 default objects using which you can access different Outlook folders such as e-mail messages, tasks, contact items etc.
***********************************************************************************
16 Defult outlook folder type
***********************************************************************************
GetDefaultFolder Method
Returns a MAPIFolder object that represents the default folder of the requested type for the current profile.
Syntax :
object.GetDefaultFolder(Request folder number)
***********************************************************************************
How to read first top most Mail item from outlook using QTP script
Dim InboxFolder=6 // Default index for inbox folder is 6.
Set ObjOUtlook = CreateObject("Outlook.Application") // Create object for outlook application
Set objNamespace = objOutlook.GetNamespace("MAPI") // Name Space Returns the Application object. "MAPI" is the only supported name space type.
Set oInbox = objNamespace.GetDefaultFolder(InboxFolder) // Create default index object for inbox folder.
Set oAllMails = oInbox.Items //Find all Mail items in the Inbox Folder
'Find out properties of the mail item
sSubject = sSubject & "To -> " & oAllMails(1).To & vbCrLf
sSubject = sSubject & "CC -> " & oAllMails(1).CC & vbCrLf
sSubject = sSubject & "BCC -> " & oAllMails(1).BCC & vbCrLf
sSubject = sSubject & "Subject -> " & oAllMails(1).Subject & vbCrLf
sSubject = sSubject & "Body -> " & oAllMails(1).Body & vbCrLf
sSubject = sSubject & "Creation Time -> " & oAllMails(1).CreationTime & vbCrLf
sSubject = sSubject & "Is Marked Important -> " & oAllMails(1).Importance & vbCrLf
sSubject = sSubject & "Received at -> " & oAllMails(1).ReceivedTime & vbCrLf
'Display the result
msgbox sSubject
***********************************************************************************
Display total number of folders and name of each folder inside Inbox Folder from OUtlook using QTP script
Dim InboxFolder=6
Set ObjOUtlook = CreateObject("Outlook.Application")
Set objNamespace = objOutlook.GetNamespace("MAPI")
Set oInbox = objNamespace.GetDefaultFolder(InboxFolder)
Set oAllFolders = oInbox.Count // Find how many folders inside inbox.
sFolderNames = "Total Folders = " & iCount & vbcrlf & vbcrlf // Get the name of folders
For i = 1 to iCount
sFolderNames = sFolderNames & "Folder " & i & " -> " & oAllFolders(i).Name & vbcrlf
Next
msgbox sFolderNames //Display folder count and folder names in msgbox
**********************************************************************************
Find out the list of all unread emails in Outlook Inbox
Dim InboxFolder=6
Set ObjOUtlook = CreateObject("Outlook.Application")
Set objNamespace = objOutlook.GetNamespace("MAPI")
Set oInbox = objNamespace.GetDefaultFolder(InboxFolder)
Set oAllMails = oInbox.Items
iTotalMails = oAllMails.Count // Count the total NUmber of Read and Unread Mail in inbox folder.
For i=1 to iTotalMails
'Check if the mail is UnRead or not
If oAllMails(i).UnRead = True Then
sSubject = sSubject & oAllMails(i).Subject & vbCrLf
End If
Next
msgbox sSubject
*******************************************************************************
Refer this link for more property of Mail Item -> http://msdn.microsoft.com/en-us/library/microsoft.office.interop.outlook.mailitem_properties.aspx
In the Outlook Object Model, ‘Application’ Object is the topmost or parent Object that represents the entire Outlook Application. So we’ll first create an instance of Outlook.Application object like below.
Set objOutlook = CreateObject("Outlook.Application")
*******************************************************************************
GetNameSpace() Method :
-> Returns a NameSpace object of the specified type.
-> The Namespace object is multiple objects. The object itself provides methods for logging in and out, accessing storage objects directly by ID, accessing certain special default folders directly, and accessing data sources owned by other users.
Syntax : ApplicationObject.GetNameSpace(Type)
Type is Required String. The type of name space to return.
Example :
ApplicationObject.GetNameSpace ("MAPI") - To return the Outlook NameSpace object from the Application object.
The only data source supported is MAPI, which allows access to all Outlook data stored in the user's mail stores.GetNamespace method used to bind to the MAPI namespace.
*******************************************************************************
MAPIFolder object
The MAPIFolder object represents a folder that contains email messages, tasks, contacts and various other items. MS Outlook provides a total of 16 default MAPIFolder objects.
Example : olFolderInbox represents the Inbox folder. Similarly olFolderOutbox, olFolderSentMail, olFolderDeletedItems represent Outbox, Sent Mail & Deleted Items folders respectively.
MAPIFolder provides 16 default objects using which you can access different Outlook folders such as e-mail messages, tasks, contact items etc.
***********************************************************************************
16 Defult outlook folder type
Name |
Value
|
Description |
olFolderCalendar | 9 | The Calendar folder. |
olFolderConflicts | 19 | The Conflicts folder (subfolder of Sync Issues folder). Only available for an Exchange account. |
olFolderContacts | 10 | The Contacts folder. |
olFolderDeletedItems | 3 | The Deleted Items folder. |
olFolderDrafts | 16 | The Drafts folder. |
olFolderInbox | 6 | The Inbox folder. |
olFolderJournal | 11 | The Journal folder. |
olFolderJunk | 23 | The Junk E-Mail folder. |
olFolderLocalFailures | 21 | The Local Failures folder (subfolder of Sync Issues folder). Only available for an Exchange account. |
olFolderManagedEmail | 29 | The top-level folder in the Managed Folders group. For more information on Managed Folders, see Help in Microsoft Outlook. Only available for an Exchange account. |
olFolderNotes | 12 | The Notes folder. |
olFolderOutbox | 4 | The Outbox folder. |
olFolderSentMail | 5 | The Sent Mail folder. |
olFolderServerFailures | 22 | The Server Failures folder (subfolder of Sync Issues folder). Only available for an Exchange account. |
olFolderSyncIssues | 20 | The Sync Issues folder. Only available for an Exchange account. |
olFolderTasks | 13 | The Tasks folder. |
olFolderToDo | 28 | The To Do folder. |
olPublicFoldersAllPublicFolders | 18 | The All Public Folders folder in the Exchange Public Folders store. Only available for an Exchange account. |
olFolderRssFeeds | 25 | The RSS Feeds folder. |
***********************************************************************************
GetDefaultFolder Method
Returns a MAPIFolder object that represents the default folder of the requested type for the current profile.
Syntax :
object.GetDefaultFolder(Request folder number)
***********************************************************************************
How to read first top most Mail item from outlook using QTP script
Dim InboxFolder=6 // Default index for inbox folder is 6.
Set ObjOUtlook = CreateObject("Outlook.Application") // Create object for outlook application
Set objNamespace = objOutlook.GetNamespace("MAPI") // Name Space Returns the Application object. "MAPI" is the only supported name space type.
Set oInbox = objNamespace.GetDefaultFolder(InboxFolder) // Create default index object for inbox folder.
Set oAllMails = oInbox.Items //Find all Mail items in the Inbox Folder
'Find out properties of the mail item
sSubject = sSubject & "To -> " & oAllMails(1).To & vbCrLf
sSubject = sSubject & "CC -> " & oAllMails(1).CC & vbCrLf
sSubject = sSubject & "BCC -> " & oAllMails(1).BCC & vbCrLf
sSubject = sSubject & "Subject -> " & oAllMails(1).Subject & vbCrLf
sSubject = sSubject & "Body -> " & oAllMails(1).Body & vbCrLf
sSubject = sSubject & "Creation Time -> " & oAllMails(1).CreationTime & vbCrLf
sSubject = sSubject & "Is Marked Important -> " & oAllMails(1).Importance & vbCrLf
sSubject = sSubject & "Received at -> " & oAllMails(1).ReceivedTime & vbCrLf
'Display the result
msgbox sSubject
***********************************************************************************
Display total number of folders and name of each folder inside Inbox Folder from OUtlook using QTP script
Dim InboxFolder=6
Set ObjOUtlook = CreateObject("Outlook.Application")
Set objNamespace = objOutlook.GetNamespace("MAPI")
Set oInbox = objNamespace.GetDefaultFolder(InboxFolder)
Set oAllFolders = oInbox.Count // Find how many folders inside inbox.
sFolderNames = "Total Folders = " & iCount & vbcrlf & vbcrlf // Get the name of folders
For i = 1 to iCount
sFolderNames = sFolderNames & "Folder " & i & " -> " & oAllFolders(i).Name & vbcrlf
Next
msgbox sFolderNames //Display folder count and folder names in msgbox
**********************************************************************************
Find out the list of all unread emails in Outlook Inbox
Dim InboxFolder=6
Set ObjOUtlook = CreateObject("Outlook.Application")
Set objNamespace = objOutlook.GetNamespace("MAPI")
Set oInbox = objNamespace.GetDefaultFolder(InboxFolder)
Set oAllMails = oInbox.Items
iTotalMails = oAllMails.Count // Count the total NUmber of Read and Unread Mail in inbox folder.
For i=1 to iTotalMails
'Check if the mail is UnRead or not
If oAllMails(i).UnRead = True Then
sSubject = sSubject & oAllMails(i).Subject & vbCrLf
End If
Next
msgbox sSubject
*******************************************************************************
Refer this link for more property of Mail Item -> http://msdn.microsoft.com/en-us/library/microsoft.office.interop.outlook.mailitem_properties.aspx
No comments:
Post a Comment