![]() |
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
|
|||
|
|||
![]()
Hook into the Application.ItemSend event in the ThisOutlookSession code
window. It gets passed the email that is being sent so that you can manipulate it:- Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean) Dim myItem As MailItem If TypeName(Item) = "olMailItem" Then Set myItem = Item 'Do something here such as call your routine passing the myItem object End If End Sub I guess that your addin is already hooking into this event, so I am not sure whether this would run before or after the addin, perhaps someone else can advise. -- Alan Moseley IT Consultancy http://www.amitc.co.uk If I have solved your problem, please click Yes below. Thanks. "andy tomic" wrote: Hi all Getting a little stuck on my outbound rules / vba code. I currently run an excellent addin called TAGLOCITY which tags emails with categories. What I am trying to do PREFIX the mail subject based on the category. NOTE: The taglocity addin triggers a category request AFTER the item.send action. for example; I have a category "100 Love St" (this is my project name) I have a color for all PROJECTS -- construction project are DARKGREEN When I send the mail I want the addin to check the subject for a ":" Then if there is no ":", prefix with "Job:" and the category. I have the code for this and it works fine if i manually trigger the vba code. I have a rule to hold the email in outbox for 1minute to give the program time to modify and for me to go in and cancel the send ![]() item.send command and there after the TAGLOCITY addin has had a chance to add in the category. code below: Sub PrefixMailItemInOutbox() Dim oNS As Outlook.NameSpace Dim oFld As Outlook.Folder Dim oItems As Outlook.Items Dim oItem As Object Dim Item As Outlook.MailItem On Error GoTo OL_Error Set oNS = Application.GetNamespace("MAPI") Set oFld = oNS.GetDefaultFolder(olFolderOutbox) Set oItems = oFld.Items 'Set objItem = GetCurrentItem() StoreID = oFld.StoreID For Each oItem In oItems If InStr(1, oItem.Subject, ":", vbTextCompare) = 0 Then If Len(oItem.Categories) 0 Then Set objItem = oNS.GetItemFromID(oItem.EntryID, StoreID) For Each objCategory In oNS.Categories If InStr(1, objItem.Categories, objCategory.Name, vbTextCompare) 0 Then Select Case objCategory.Color Case OlCategoryColor.olCategoryColorDarkRed objItem.Subject = "Roofing:" & objCategory.Name & " - " & objItem.Subject objItem.Save Case OlCategoryColor.olCategoryColorBlack objItem.Subject = "Carpentry:" & objCategory.Name & " - " & objItem.Subject objItem.Save Case OlCategoryColor.olCategoryColorDarkGreen objItem.Subject = "Job:" & objCategory.Name & " - " & objItem.Subject objItem.Save End Select End If Next End If objItem.Send 'Set objItem = Nothing End If Next Exit Sub OL_Error: MsgBox Err.Description Err.Clear End Sub Thanks in advance Andy -- andy tomic |
#2
|
|||
|
|||
![]()
It's impossible to determine what addin will run things in what order. It
depends on the load order of the addins (Outlook VBA is just another COM addin) and which ones register for which events in which order. If that addin is actually hooking to Application.ItemSend() then it might be after or before a VBA hook. If the VBA code must be after the addin massages the data then using an earlier event such as item.Send() wouldn't help, but many addins do use that event rather than Application.ItemSend() since that fires after the email transport is engaged and so is too late for some item manipulations. -- Ken Slovak [MVP - Outlook] http://www.slovaktech.com Author: Professional Programming Outlook 2007. Reminder Manager, Extended Reminders, Attachment Options. http://www.slovaktech.com/products.htm "Alan Moseley" wrote in message ... Hook into the Application.ItemSend event in the ThisOutlookSession code window. It gets passed the email that is being sent so that you can manipulate it:- Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean) Dim myItem As MailItem If TypeName(Item) = "olMailItem" Then Set myItem = Item 'Do something here such as call your routine passing the myItem object End If End Sub I guess that your addin is already hooking into this event, so I am not sure whether this would run before or after the addin, perhaps someone else can advise. -- Alan Moseley IT Consultancy http://www.amitc.co.uk If I have solved your problem, please click Yes below. Thanks. |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
Subject will not update | ExcelLars | Outlook and VBA | 1 | February 26th 09 06:48 AM |
OLEXP outbound mail failure | schiermeier | Outlook Express | 9 | May 13th 08 03:23 AM |
Outlook 2007/Vista - Outbound mail failing | makerofgirls | Outlook - General Queries | 7 | May 8th 07 09:58 PM |
E-Mail msg's won't send (outbound) | Bubey | Outlook Express | 3 | February 22nd 07 05:02 PM |
Bcc bar on outbound mail | speedy_mike | Outlook Express | 5 | January 30th 07 08:38 PM |