View Single Post
  #3  
Old October 1st 09, 03:16 AM posted to microsoft.public.outlook.program_addins
Mark B[_2_]
external usenet poster
 
Posts: 93
Default Trap email send event

From ThisAddIn_Startup I call mAddSentItemsHandler:

public void mAddSentItemsHandler()
{

Outlook.MAPIFolder sentItemsFolder =
Globals.ThisAddIn.Application.GetNamespace("MAPI") .GetDefaultFolder
Microsoft.Office.Interop.Outlook.OlDefaultFolders. olFolderSentMail);
sentItemsFolder.Items.ItemAdd += new
Microsoft.Office.Interop.Outlook.ItemsEvents_ItemA ddEventHandler(Application_SentItemsAdditionHandle r);
}


public void Application_SentItemsAdditionHandler()
{
MessageBox.Show("Sent");
}

I get the following error with a red underline under
Application_SentItemsAdditionHandler in the mAddSentItemsHandler method:

Error 7 No overload for 'Application_SentItemsAdditionHandler' matches
delegate 'Microsoft.Office.Interop.Outlook.ItemsEvents_Item AddEventHandler'
C:\Users\Mark\Desktop\MyAddin\ThisAddIn.cs 325 46 MyAddin





"Ken Slovak - [MVP - Outlook]" wrote in message
...
The way that code is written you would get that event handler garbage
collected and fail to fire at some point. Declare and instantiate an Items
collection at module or class level and hook your ItemAdd() handler to
that so your handler doesn't get garbage collected.

In ItemAdd() you are passed an Item object. Cast that to a MailItem object
and then use string replace function to get rid of the unwanted text.
Something like this would do it, add exception handling of course:

Outlook.Mailitem mail = (Outlook.MailItem)Item;
string newBody = mail.Body.Replace("My Special Sentence", "");
mail.Body = newBody;

If you are getting syntax errors be specific on what and where, if you
want help with them.

--
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


"Mark B" wrote in message
...
VSTO C#, OL2007

I want to remove the phrase "My Special Sentence" from every email after
it gets sent and appears in the Sent Items folder.

I started, finding the following code on the internet but being new to C#
and VSTO I have had some difficulties with syntax errors with it.

using Outlook = Microsoft.Office.Interop.Outlook;
defaultFolder =
this.Session.GetDefaultFolder(Outlook.OlDefaultFol ders.olFolderSentMail);
defaultFolder.Items.ItemAdd += new
Microsoft.Office.Interop.Outlook.ItemsEvents_ItemA ddEventHandler(SentItems_ItemAdd);

Can anyone help me with some code to remove the phrase "My Special
Sentence" from every email after it gets sent and appears in the Sent
Items folder.

TIA



Ads