Hitesh Manglani
asked on
Outlook Item Add Event for mutliple items
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?
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?
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
Chris
ASKER
when can the above procedure be called? Does it get called automatically when new mails are received?
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(ByVa l EntryIDCollection As String)
Chris
i.e. the correct sub name is:
Private Sub Application_NewMailEx(ByVa
Chris
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
hi chris can you help me with this question as well?
https://www.experts-exchange.com/questions/24365205/Create-an-outlook-addin-using-C-NET.html
https://www.experts-exchange.com/questions/24365205/Create-an-outlook-addin-using-C-NET.html
>>> 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
Sorry I am not familiar with C# so totally useless in that regard
Chris
ASKER
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?
Can u help in this?
ASKER
sorry i should have mentioned Chris not BlueDevilFan
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
In the meantime I will look at precedence for code
Chris
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
Chris
ASKER
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.
ASKER
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.GetIte mFromID(st rEntryID(i ntFinal))
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.
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.GetIte
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
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
>>> Stupid question maybe but is the code located in thisoutlooksession and is it the only so named sub?
Chris
ASKER
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?)
>>> 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
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
Chris
Open in new window