appledapple.com appledapple.com
   Home >> About Us >> Privacy of Info >> Terms & Conditions >> Add Your Link >> Add Your Article
Search:   
Free links exchange
 

Academics & Learning

Eating & Drinking

Travel & Accommodation

Internet & Computers

Careers & Employment

Home & Garden

Entertainment

Business & Commerce

Vehicles & Automotive

Science & Research

Sports & Adventure

Teens & Children

Politics & Government

Fashion & Lifestyle

Art & Creative

Fitness & Health

Medicine & Treatment

Online & Board Games

Online Shopping

Society & Issues

Issues & News

Property & Agents

Investment & Finance

Self Healing

 

Home –› Internet & Computers –› Paid Software
 

Removing Incoming Email in MS Exchange, C# Example

 

Author: Boris Makushkin

The purpose of one of our projects was MS Exchange handler for processing incoming email.

The basic source of knowledge was this article "Developing Managed Event Sinks/Hooks for Exchange Server Store using C#" by Logu Krishnan, published to the address http://www.codeproject.com/csharp/CsManagedEventSinksHooks.asp, and also examples from Microsoft Exchange SDK.

We utilized Synchronous Events and created the handler, which fires on OnSyncSave event. The handler creates activity record in Microsoft CRM and then removes the message in the Exchange database before the commitment:

public void OnSyncSave(IExStoreEventInfo pEventInfo, string bstrURLItem, int IFlags) { try { if (IFlags == ((int)EVT_SINK_FLAGS.EVT_SYNC_COMMITTED + (int)EVT_SINK_FLAGS.EVT_IS_DELIVERED)) {

ProcessMessage(pEventInfo, bstrURLItem, IFlags);

}

}

catch (Exception ex) {

log.Debug(ex.Message + "\n" + ex.StackTrace);

}

finally {

LogManager.Shutdown();

} }

For Exchange handlers debugging - it is the extremely convenient to use system log4net in RollingLogFileAppender or RemoteAppender modes (for multiple instance of COM + objects). You can read more on this subject here http://logging.apache.org/log4net/ To allow the handler incoming mail removal, it is necessary to give proper rights to the user, under which account the COM+ application runs the handler. These are rights on change of the information in users boxes for whom it is registered (Windows 2003 Server: Active Directory Users and Computer -> Users -> Properties (for COM+ application account) -> Exchange Advanced -> Mailbox Rights). And now the code:

private void DeleteMessage(string bstrURLItem) { try {

ADODB.Connection oCn = new ADODB.Connection();

oCn.Provider = "exoledb.datasource";

oCn.Open(bstrURLItem, "", "", -1);

if(oCn.State == 1) {

log.Debug("Good Connection");

}

else {

log.Debug("Bad Connection");

}

ADODB.Record rec = new ADODB.Record();

rec.Open(bstrURLItem, oCn,

ADODB.ConnectModeEnum.adModeReadWrite,

ADODB.RecordCreateOptionsEnum.adFailIfNotExists,

ADODB.RecordOpenOptionsEnum.adOpenSource,

"", "");

rec.DeleteRecord(bstrURLItem, false);

rec.Close();

oCn.Close();

rec = null;

oCn = null;

}

catch (Exception ex) {

log.Debug(ex.Message + "\n" + ex.StackTrace);

} }

Happy customizing! Boris Makushkin

Author Bio:
Boris Makushkin is an expert on this subject. Boris has written several articles in the past on this topic.
You can also reach this article by using: free software, free software downloads, cheap computer software, discount software
 
 
 

Related Articles

 
Simple Steps to Starting Your Own Web Site Promotion Service
 
Decrease Windows XP Boot Up Time (Dramatically)
 
Link Cloaking: Cloak and Dagger in Affiliate Marketing
 
Intellectual Property Distribution - The Simplest Way To Create Your Fortune Online
 
New Concept in Software Protection
 
AdSense Showing the Wrong Ads? A Trick to Make Sense of AdSense
 
10 Sneaky Tricks of Cheap Web Hosting Companies
 
Learn the Language of the World Wide Web
 
Good Landing Page Design Tips
 
Software For Your Hard-Drive
 
 
 
Home >> Privacy of Info >> Terms & Conditions  
© 2006-2008 www.appledapple.com All Rights Reserved Worldwide.