Link to home
Start Free TrialLog in
Avatar of atskiii
atskiii

asked on

Opening Outlook 2003 profile using VBScript.

Hi,
I want to use standalone VBSCRIPT to open an outlook mailbox. After opening it I will excute VBScript code shown below to close that outlook mailbox. Here's the code I'm using, please let me know where I am going wrong.  

opening Outlook mailbox code - NOT WORKING
_______________________________________________________________
Set objOutlook = CreateObject("Outlook.Application")      ' Get Outlook
Set objNamespace = objOutlook.GetNamespace("MAPI")      ' Get MAPI
Set objFolder = objNamespace.GetDefaultFolder(olFolderInbox)      ' Get inbox
_______________________________________________________________

Closing Outlook mailbox code - WORKING
_______________________________________________________________
Set olMAPI = GetObject("", "Outlook.Application").GetNamespace("MAPI")
olMAPI.Application.Quit
Set olMAPI = Nothing
_______________________________________________________________

Thanks you for your help.
Avatar of Chris Bottomley
Chris Bottomley
Flag of United Kingdom of Great Britain and Northern Ireland image

Hello atskiii,

Try replacing:
Set objFolder = objNamespace.GetDefaultFolder(olFolderInbox)      ' Get inbox
with
Set objFolder = objNamespace.GetDefaultFolder(6)      ' Get inbox

Regards,

chris_bottomley
Avatar of atskiii
atskiii

ASKER

Hi Chris,

Thank you for your help. I have replaced "olFolderInbox" with "6" and error message I used to get, "Could  not complete the operation. One or more parameter values are not valid." no longer appears. When executing the code with parameter value "6", nothing seems to happen. What does value "6" represent? I tried "5" because Inbox is the 5th folder in my mailbox. sorry for this silly question. I am new to VBscripting so all seems so obvious to ask.

Thank you for your help again.
In VBA the constant olFolderInbox has a value of 6.  VBS does not know the values for VBA constants hence the substitution.

Your snippet:

Set objOutlook = CreateObject("Outlook.Application")      ' Get Outlook
Set objNamespace = objOutlook.GetNamespace("MAPI")      ' Get MAPI
Set objFolder = objNamespace.GetDefaultFolder(olFolderInbox)      ' Get inbox

establishes a connection to outlook but you cannot see it, objoutlook.visible should render it visble ... if however you are merely doing some processing you would not need it to be visible hence any snippets you saw to create this code may not have needed the visibility of the application.

I could of course be wrong, but that's my first take on the matter, let me know how it goes.

Chris
ASKER CERTIFIED SOLUTION
Avatar of atskiii
atskiii

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Most disappointing, I have tested the answer I gave to the original code and indeed replacing the constant with a magic number works, the outlook application is opened and closed again afterwards ... the follow on question whilst not fully resolved was not in the original so closing the Q as self answered is I believe unfair, but for 100 points i'm not about to argue.

Chris