2011-01-05 9 views
2

Ich versuche, einen Exchange-Transport-Agent zu schreiben, der testet, ob die Betreffzeile leer ist. Ist dies der Fall, wird eine Standard-Betreffzeile eingefügt. wenn ich kompiliert, installiert und aktiviert diese DLL der Server würde nicht mehr Route E-Mail ...C# Exchange 2007 Transport Agent

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Diagnostics; 
using Microsoft.Exchange.Data.Transport; 
using Microsoft.Exchange.Data.Transport.Email; 
using Microsoft.Exchange.Data.Transport.Smtp; 
using Microsoft.Exchange.Data.Transport.Routing; 
using Microsoft.Exchange.Data.Common; 

namespace ExchangeTransportAgent 
{ 
    public class RoutingFactory : RoutingAgentFactory 
    { 

     public override RoutingAgent CreateAgent(SmtpServer server) 
     { 
      RoutingAgent myAgent = new sRoutingAgent(); 
      return myAgent; 
     } 
    } 
} 




class sRoutingAgent : RoutingAgent 
{ 

    public sRoutingAgent() 
    { 
     //subscribe to different events 
     base.OnSubmittedMessage += new SubmittedMessageEventHandler(SRoutingAgent_OnSubmittedMessage); 
    } 

    void SRoutingAgent_OnSubmittedMessage(SubmittedMessageEventSource source, QueuedMessageEventArgs e) 
    { 
     if (e.MailItem.Message.Subject == string.Empty) 
     { 
      try 
      { 
       e.MailItem.Message.Subject = "Kranichs Jewelers"; 


       EventLog.WriteEntry("MY Exchange Routing Agent", "MY ROUTING AGENT CHANGED THE SUBJECT", 
       EventLogEntryType.Information, 1337); 
      } 
      catch (Exception except) 
      { 
       EventLog.WriteEntry("MY Exchange Routing Agent", except.Message, 
        EventLogEntryType.Error); 
      } 
     } 
    } 

} 

weiß jemand, warum dies nicht funktioniert werden könnte?

dank

+0

Install-Transport -Name "DefaultSubjectAgent" -TransportAgentFactory "ExchangeTransportAgent.RoutingFactory" -AssemblyPath "E: \ TransportAgents \ ExchangeTransportAgent.dll" Enable-Transport -Identity "DefaultSubjectAgent" – Jeff

+0

diese die Befehle sind, die ich leite Installieren und aktivieren Sie den Agenten – Jeff

Antwort

2

"EventLog.WriteEntry" vielleicht einen Fehler aus. Ich hatte das gleiche Problem und beim Entfernen von "EventLog.WriteEntry" war alles in Ordnung. Für jetzt weiß ich nicht warum.

+0

Danke - ich habe nicht mit einer Weile versäumt, aber ich werde das testen und sehen, ob es funktioniert. – Jeff