Solved

Outlook Item Add Event for mutliple items

Posted on 2009-05-06
16
1,033 Views
Last Modified: 2012-05-06
Hi experts,

  I need to maintain a log of the mails that i have received, i am using the item add event for the same. However the problem is that the event is triggered only once if multiple items are received at a time. How can i get details of all the mails that have arrived?
0
Comment
Question by:hiteshgoldeneye
  • 9
  • 7
16 Comments
 
LVL 59

Expert Comment

by:Chris Bottomley
ID: 24312196
Assuming you are using NewMailEx then see below

Chris
Private Sub NewMailEx(ByVal EntryIDCollection As String)

Dim mai As mailitem

Dim strEntryID() As String

Dim intFinal As Integer

Dim testObj As Object
 

    strEntryID = Split(EntryIDCollection & ",", ",")

    For intFinal = 0 To UBound(strEntryID) - 1

        Set testObj = Application.Session.GetItemFromID(strEntryID(intFinal))

        If testObj.Class = olMail Then

            set mai = testobj

' Process your email here

        end if

    next

'...

Open in new window

0
 
LVL 59

Expert Comment

by:Chris Bottomley
ID: 24312228
Re-reading then of course this is not the add event to the folder BUT it is a mechanism for processing all the received mails in a batch.

Chris
0
 
LVL 13

Author Comment

by:hiteshgoldeneye
ID: 24312285
when can the above procedure be called? Does it get called automatically when new mails are received?
0
 
LVL 59

Expert Comment

by:Chris Bottomley
ID: 24312363
It is automatically called and resides in thisoutlooksession as one of the application events.

i.e. the correct sub name is:

Private Sub Application_NewMailEx(ByVal EntryIDCollection As String)

Chris
0
 
LVL 59

Accepted Solution

by:
Chris Bottomley earned 500 total points
ID: 24312377
FYI

Because I often generate this event handler for different Questions in EE I call out from the Application_NewMailEx sub to a question specific variant so my apologies for the misleading naming of the original post.

Chris
0
 
LVL 13

Author Comment

by:hiteshgoldeneye
ID: 24312658
0
 
LVL 59

Expert Comment

by:Chris Bottomley
ID: 24312698
>>> hi chris can you help me with this question as well?

Sorry I am not familiar with C# so totally useless in that regard

Chris
0
 
LVL 13

Author Comment

by:hiteshgoldeneye
ID: 24482468
Hi BlueDevilFan, I am facing one problem with the solution, I am trying to use the event you mentioned, however there is a rule set on the client machine which moves the mail to a particular folder, and the newmailex item is not triggered :(.
Can u help in this?
0
What is SQL Server and how does it work?

The purpose of this paper is to provide you background on SQL Server. It’s your self-study guide for learning fundamentals. It includes both the history of SQL and its technical basics. Concepts and definitions will form the solid foundation of your future DBA expertise.

 
LVL 13

Author Comment

by:hiteshgoldeneye
ID: 24490241
sorry i should have mentioned Chris not BlueDevilFan
0
 
LVL 59

Expert Comment

by:Chris Bottomley
ID: 24490706
Can you upload your code for newmailex and the settings used for their rule.

In the meantime I will look at precedence for code

Chris
0
 
LVL 59

Expert Comment

by:Chris Bottomley
ID: 24490759
I have looked to confirm precedence and it is as I would expect, newmailex fires before the rule therefore I would suspect the implementation of code on their PC, and is teh reason I requested the code details.

Chris
0
 
LVL 13

Author Comment

by:hiteshgoldeneye
ID: 24491180
Hi Chris thanks for your feedback, actually i had checked the documentation on msn regarding this event and it mentioned the same thing that the event fires before any rules are applied. However i dont know why i am facing an issue, the client is busy currently so i am not able to work on the m/c. So will reply to you soon.
0
 
LVL 13

Author Comment

by:hiteshgoldeneye
ID: 24491713
HI chris i tried to debug the problem, but surprisingly the event doesnt trigger on the Client's mc (works for Default Inbox only).

 Also I tried to use the code in my machine (after modifying it suitably),I got an error in the line
Set testObj = Application.Session.GetItemFromID(strEntryID(intFinal))

I think this is because the mail must have moved to the personal folder and as u know the EntryId is changed by Outlook once a mail is moved. So i guess it means that the entire code in the event is not executed before the rule is applied :(. The code i used is attached herwith.
Private Sub Application_NewMailEx(ByVal EntryIDCollection As String)
 

Dim mai As MailItem

Dim strEntryID() As String

Dim intFinal As Integer

Dim testObj As Object

Dim i As Integer

Dim SenderAddress As String

Dim sqlQuery As String, MailType As String
 

MailType = "External"

strEntryID = Split(EntryIDCollection & ",", ",")

For intFinal = UBound(strEntryID) - 1 To 0 Step -1

        If intFinal = UBound(strEntryID) - 1 Then

            constr = "Data Source=blah;Initial Catalog=blah;User Id=sa;Password=blah;Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;"

            Set con = New ADODB.Connection

            con.Open constr

        End If

        Set testObj = Application.Session.GetItemFromID(strEntryID(intFinal))

        If testObj.Class = olMail Then

            Set mai = testObj

            If mai.To = "IN, Consultingschool" Then

                    SenderAddress = R_GetSenderAddress(mai)

                    If InStr(1, UCase(SenderAddress), UCase("marijke.dekker@capgemini.com"), vbTextCompare) > 0 Then

                        MailType = "Internal"

                    End If

                    If InStr(1, UCase(SenderAddress), UCase("severine.cano@capgemini.com"), vbTextCompare) > 0 Then

                        MailType = "Internal"

                    End If

                    If InStr(1, UCase(SenderAddress), UCase("lorna.ball@capgemini.com"), vbTextCompare) > 0 Then

                        MailType = "Internal"

                    End If
 

                    sqlQuery = sqlQuery & "'" & SenderAddress & "'," 'Replace(mai.SenderName, "'", "") & "'," 'GetReplyToAddress(mai)  '.SenderEmailAddress

                    sqlQuery = sqlQuery & "'" & Replace(mai.To, "'", "") & "',"

                    sqlQuery = sqlQuery & "'" & Replace(mai.Subject, "'", "") & "',"
 

                    sqlQuery = sqlQuery & "'" & Month(mai.ReceivedTime) & "/" & _

                    Day(mai.ReceivedTime) & "/" & Year(mai.ReceivedTime) & " " & _

                    Hour(mai.ReceivedTime) & ":" & Minute(mai.ReceivedTime) & ":" & _

                    Second(mai.ReceivedTime) & "','" & MailType & "')"

                    con.Execute sqlQuery

            End If

       End If

 Next

 con.Close
 

End Sub

Open in new window

0
 
LVL 59

Expert Comment

by:Chris Bottomley
ID: 24525742
HI chris i tried to debug the problem, but surprisingly the event doesnt trigger on the Client's mc (works for Default Inbox only).

>>> Stupid question maybe but is the code located in thisoutlooksession and is it the only so named sub?

Chris
0
 
LVL 13

Author Comment

by:hiteshgoldeneye
ID: 24525791
Yes Chris, it is located in thisoutlooksession and is the only so named Sub (we get a compiler error Ambiguous name detected when you have 2 Sub with same name right?)
0
 
LVL 59

Expert Comment

by:Chris Bottomley
ID: 24529442
>>> we get a compiler error Ambiguous name - COrrect

MAcros enabled?

BUT:::::

>>> i tried to debug the problem, but surprisingly the event doesnt trigger on the Client's mc (works for Default Inbox only).

The receive event fires off the default mailbox so am I missing some detail?

Chris
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Is your Office 365 signature not working the way you want it to? Are signature updates taking up too much of your time? Let's run through the most common problems that an IT administrator can encounter when dealing with Office 365 email signatures.
Read this checklist to learn more about the 15 things you should never include in an email signature.
This Experts Exchange video Micro Tutorial shows how to tell Microsoft Office that a word is NOT spelled correctly. Microsoft Office has a built-in, main dictionary that is shared by Office apps, including Excel, Outlook, PowerPoint, and Word. When …
To add imagery to an HTML email signature, you have two options available to you. You can either add a logo/image by embedding it directly into the signature or hosting it externally and linking to it. The vast majority of email clients display l…

919 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

19 Experts available now in Live!

Get 1:1 Help Now