Votre mag au contenu libre de droit |
|
ARTICLES EN LIBRE DE DROIT :: Informatique :: Enlèvement de l'email entrant dans la MME. échange, exemple de C# Enlèvement de l'email entrant dans la MME. échange, exemple de C#Le but d'un de nos projets était traiteur de MME. échange pour traiter l'email entrant. La source de base de connaissance était cet article « éviers/crochets contrôlés se développants d'événement pour le magasin de serveur d'échange en utilisant C# » par Logu Krishnan, a édité à l'adresse http://www.codeproject.com/csharp/CsManagedEventSinksHooks.asp, et également aux exemples de l'échange SDK de Microsoft. Nous avons utilisé des événements synchrones et avons créé le traiteur, qui met le feu sur l'événement d'OnSyncSave. Le traiteur crée le disque d'activité dans Microsoft CRM et puis enlève le message dans la base de données d'échange avant l'engagement : public OnSyncSave vide (pEventInfo d'IExStoreEventInfo, bstrURLItem de corde, IFlags interne) {essai {si (== d'IFlags (EVT_SINK_FLAGS.EVT_SYNC_COMMITTED (interne) + EVT_SINK_FLAGS.EVT_IS_DELIVERED (interne))) { ProcessMessage (pEventInfo, bstrURLItem, IFlags) ; } } crochet (exception ex) { notation. Corriger (ex. Message + « n » + ex.StackTrace) ; } finalement { LogManager.Shutdown () ; } } Pour des traiteurs d'échange corrigeant - il est extrêmement le commode d'employer le système log4net dans des modes de RollingLogFileAppender ou de RemoteAppender (pour l'exemple multiple de COM + des objets). Vous pouvez lire plus à ce sujet ici http://logging.apache.org/log4net/ pour permettre au traiteur l'enlèvement entrant de courrier, il est nécessaire donnez des droits appropriés à l'utilisateur, sous lequel le compte l'application de COM+ court le traiteur. Ce sont des justex sur le changement de l'information dans des boîtes de l'utilisateur à qui elle est inscrite (serveur 2003 de Windows : Utilisateurs et ordinateur en service d'annuaire - > utilisateurs - > propriétés (pour le compte d'application de COM+) - > échange avancé - > droites de boîte aux lettres). Et maintenant le code : DeleteMessage vide privé (bstrURLItem de corde) {essai { oCn d'ADODB.Connection = nouvel ADODB.Connection () ; oCn.Provider = « exoledb.datasource » ; oCn.Open (bstrURLItem, "", "", -1) ; si (== 1 d'oCn.State) { notation. Corriger (« bon raccordement ») ; } autrement { notation. Corriger (« connexion mauvaise ») ; } Rec d'ADODB.Record = nouvel ADODB.Record () ; rec. S'ouvrir (bstrURLItem, oCn, ADODB.ConnectModeEnum.adModeReadWrite, ADODB.RecordCreateOptionsEnum.adFailIfNotExists, ADODB.RecordOpenOptionsEnum.adOpenSource, "", ""); rec.DeleteRecord (bstrURLItem, faux) ; rec. Fin () ; oCn.Close () ; rec = nulle ; oCn = nulle ; } crochet (exception ex) { notation. Corriger (ex. Message + « n » + ex.StackTrace) ; } } Adapter heureux ! Boris Makushkin Le (05/02/2007) Découvrez d'autres articles : © 2008 Fruitymag
Restez informé grâce à votre email |
























