![]() |
If this is your first visit, be sure to check out the FAQ by clicking the link above. You may have to register before you can post: click the register link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below. |
|
|
Thread Tools | Search this Thread | Display Modes |
|
#1
|
|||
|
|||
![]()
Am Fri, 19 May 2006 05:46:01 -0700 schrieb Steve A.:
Autsch, hopefully nobody else has seen this thread :-) For objects you must use the Set statement: Set objSession = CreateObject("MAPI.Session") -- Viele Gruesse / Best regards Michael Bauer - MVP Outlook -- www.vbOffice.net -- Michael, Thanks once again but the script runs. The error message I have discovered is Connection error: 91 Object variable or With block variable not set regards Steve "Michael Bauer" wrote: Am Fri, 19 May 2006 01:55:02 -0700 schrieb Steve A.: The last thing I could think of why CreateObject("MAPI.Session") fails is that thereīs some kind of a script blocker (Norton Anti Virus)? -- Viele Gruesse / Best regards Michael Bauer - MVP Outlook -- www.vbOffice.net -- Michael thanks you but Visual Basic Tools - References includes Micrososft CDO 1.21 Library which is ticked and CDO.DLL is on my system , so I think this means that it is installed. "Michael Bauer" wrote: Am Thu, 18 May 2006 23:23:01 -0700 schrieb Steve A.: ok, I assume that you donīt have CDO installed. Itīs an optional package from your Outlook or Office CD. -- Viele Gruesse / Best regards Michael Bauer - MVP Outlook -- www.vbOffice.net -- Michael On Error GoTo eh eh: If Err.Number 0 Then MsgBox "Connection error: " & Err.Number & " " & Err.Description Err.Clear Exit Function End If Gives the following message Connection error: 91 Object variable or With block variable not set "Michael Bauer" wrote: Am Thu, 18 May 2006 16:59:02 -0700 schrieb Steve A.: Please donīt call InternetHeaders, but InternetHeaders.Value. Why do you know that 'objSession is not initialised properly'? -- Viele Gruesse / Best regards Michael Bauer - MVP Outlook -- www.vbOffice.net -- Greetings I want to access message.fields to search the internet headers for a message. I'm using code I have found on the net, and don't understand MAPI or CDO very well. I believe the The code fails at GetMessage becuse the objSession is not initialised properly: Any suggestions? I have Function GetCDOItemFromOL(objOLItem As Object) As MAPI.Message Dim objSession As MAPI.Session Dim objApp As Outlook.Application Dim strEntryID As String Dim strStoreID As String Set objApp = CreateObject("Outlook.Application") strEntryID = objOLItem.EntryID strStoreID = objOLItem.Parent.StoreID objSession = CreateObject("MAPI.Session") objSession.Logon , , False, False Set GetCDOItemFromOL = objSession.GetMessage(strEntryID, strStoreID) objSession.Logoff Set objSession = Nothing End Function Sub RuleScript(MyMail As MailItem) Dim strID As String Dim olNS As Outlook.NameSpace Dim olMail As Outlook.MailItem Dim objCDOMsg As MAPI.Message Dim InternetHeaders As String Const CdoPR_TRANSPORT_MESSAGE_HEADERS = &H7D001E Set objCDOMsg = GetCDOItemFromOL(MyMail) InternetHeaders = objCDOMsg.Fields(CdoPR_TRANSPORT_MESSAGE_HEADERS) MsgBox "Mail message arrived Internet Headers Are : " & InternetHeaders Set objCDOMsg = Nothing Set olMail = Nothing Set olNS = Nothing End Sub |
#2
|
|||
|
|||
![]()
Michael thanks for your help.
There was another critical error in the code as well. The inclusion of error handling helped flush it out. The other error was a call to objSession.Logoff The code that works for me is show below. The only problem now being the pop-up dialog "A program is trying to access e-mail addresses you have stored in outlook. Do you want to allow this?" Regards Steve A Code for retrieving internet headers in an Outlook Rule: Function GetCDOItemFromOL(objOLItem As Object) As MAPI.Message Dim objSession As MAPI.Session Dim objApp As Outlook.Application Dim strEntryID As String Dim strStoreID As String On Error GoTo eh Set objApp = CreateObject("Outlook.Application") strEntryID = objOLItem.EntryID strStoreID = objOLItem.Parent.StoreID Set objSession = CreateObject("MAPI.Session") objSession.Logon , , False, False Set GetCDOItemFromOL = objSession.GetMessage(strEntryID, strStoreID) 'objSession.Logoff == WAS AN ERROR Set objSession = Nothing Exit Function eh: If Err.Number 0 Then MsgBox "Connection error: " & Err.Number & " " & Err.Description Err.Clear Exit Function End If End Function Sub RuleScript(MyMail As MailItem) Dim objCDOMsg As MAPI.Message Dim InternetHeaders As String Const CdoPR_TRANSPORT_MESSAGE_HEADERS = &H7D001E Set objCDOMsg = GetCDOItemFromOL(MyMail) InternetHeaders = objCDOMsg.Fields(CdoPR_TRANSPORT_MESSAGE_HEADERS). Value MsgBox "Mail message arrived Internet Headers Are : " & InternetHeaders Set objCDOMsg = Nothing End Sub |
#3
|
|||
|
|||
![]()
Am Sat, 20 May 2006 17:42:01 -0700 schrieb Steve A.:
If an object variable isnīt set then, of course, trying to access that objectīs methods fails, too. Because the message header contains e-mail addresses itīs blocked. A good page that lists all infos about that is www.outlookcode.com/d/sec.htm For getting the header without that dialog Iīd recommend the Redemption from www.dimastr.com -- Viele Gruesse / Best regards Michael Bauer - MVP Outlook -- www.vbOffice.net -- Michael thanks for your help. There was another critical error in the code as well. The inclusion of error handling helped flush it out. The other error was a call to objSession.Logoff The code that works for me is show below. The only problem now being the pop-up dialog "A program is trying to access e-mail addresses you have stored in outlook. Do you want to allow this?" Regards Steve A Code for retrieving internet headers in an Outlook Rule: Function GetCDOItemFromOL(objOLItem As Object) As MAPI.Message Dim objSession As MAPI.Session Dim objApp As Outlook.Application Dim strEntryID As String Dim strStoreID As String On Error GoTo eh Set objApp = CreateObject("Outlook.Application") strEntryID = objOLItem.EntryID strStoreID = objOLItem.Parent.StoreID Set objSession = CreateObject("MAPI.Session") objSession.Logon , , False, False Set GetCDOItemFromOL = objSession.GetMessage(strEntryID, strStoreID) 'objSession.Logoff == WAS AN ERROR Set objSession = Nothing Exit Function eh: If Err.Number 0 Then MsgBox "Connection error: " & Err.Number & " " & Err.Description Err.Clear Exit Function End If End Function Sub RuleScript(MyMail As MailItem) Dim objCDOMsg As MAPI.Message Dim InternetHeaders As String Const CdoPR_TRANSPORT_MESSAGE_HEADERS = &H7D001E Set objCDOMsg = GetCDOItemFromOL(MyMail) InternetHeaders = objCDOMsg.Fields(CdoPR_TRANSPORT_MESSAGE_HEADERS). Value MsgBox "Mail message arrived Internet Headers Are : " & InternetHeaders Set objCDOMsg = Nothing End Sub |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
mail filter rule based on mail header field | volker.badziong | Outlook - Installation | 4 | June 16th 06 11:45 AM |
I can't download email only header in Outlook | Sandra JI | Outlook - General Queries | 1 | May 5th 06 06:23 PM |
printing name header in outlook 2000 emails | djeanes | Outlook - General Queries | 1 | February 15th 06 07:57 PM |
Configure Outlook attachment icon to display in email header | Jean-Claude | Outlook - Installation | 1 | February 6th 06 07:30 AM |
How can I change the content of my outlook e mail message header? | jggome | Outlook - Using Contacts | 1 | January 26th 06 04:32 AM |