Exchange 20007 Transportagenten
Während bei Exchange 5.x fast gar keine Möglichkeit bestand, auf dem Server die Nachrichten bei der Übertragung zu verarbeiten, war bei Exchange 2000/20003 dies über die SMTP-Transportsinks (siehe auch SMTP-EventSink) zumindest in einer gewissen Weise möglich. Erst Exchange 2007 hingegen hat den Weg zu einer leistungsfähigen Verarbeitung geöffnet, da nun jede Mail, auch die zwischen Postfächern im gleichen Informationsspeicher, immer durch die Transport-Rolle muss. Und an dieser Stelle können nun Transport Agenten einsetzen, die diese Mails verarbeiten, verändern etc.
Die Exchange 2007 Transportregeln, welche z.B.: zum Anfügen eines Disclaimers auf E2K7 Disclaimer verwendet werden, sind auch einfach Transportagenten. Das schöne bei Exchange 2007 ist, dass die Agenten in Managed Code entwickelt werden können, und damit die Zeit der C++-Sinks für den Windows SMTP-Dienst langsam abläuft. Solche Agenten können auch im Exchange Edge Server genutzt werden.
Dieser Ort ist sehr leistungsfähig, da diese Agenten auf den kompletten Nachrichteninhalte vollständigen Zugriff haben. Es ist daher nur eine Frage der Zeit, bis Drittprodukte sind dieser Schnittstelle bemächtigen, um die Regeln, die Exchange 2007 von Hause aus bietet, zu erweitern. Denkbar sind z.B.:
- Disclaimer
Die Disclaimer Funktion von Exchange 2007 ist sehr rudimentär. Hier wird es sicher bald neue Produkte geben - Verschlüsselung
Denkbar ist auch, dass Exchange Mails nach extern z.B. verschlüsselt. Dies würde das ein oder andere SMIME-Gateway überflüssig machen, welches bislang. Zumindest die Signatur anhand eines im Active Directory hinterlegten Schlüssels ist relativ einfach möglich. - Archivierung
Bislang archivieren Produkte über das Journalpostfach alle Mails an eine Speichergruppe. Aber Mails, die nur "durch" Exchange durchlaufen, werden so nicht erfasst. Hier kann ein Transport Agent helfen. - Mail Management
Natürlich kann ein eigener Agent auch ganz andere Filter auf Nachrichteninhalte umsetzen, z.B.: bestimmte Anlagen blockieren oder die Größe individuell beschränken. - Reporting
Der Agent kann sehr viele Betriebsdaten der Mail in eine Reportingdatenbank überführen - PDF und Packen
Denkbar sind auch Lösungen, die Anlagen für den Benutzer transparent komprimieren oder Dokumente nach PDF konvertieren.
Sie sehen also, dass es sich für Dritthersteller aber auch für größere Firmen durchaus lohnen kann, in die Entwicklung eines eigenen Transport Agenten etwas Zeit zu investieren.
Transport Agent - Erste Schritte
Ich bin nun nicht der Vollzeit Entwickler und es gibt schon sehr viele Beispiele für Transport Agenten im Internet. Schauen Sie sich einfach mal die weiterführenden Links an. Für Administratoren ist eher die Installation und Konfiguration interessant:
Ein Transport Agent ist primär mal ein Stück "Code", welches auf den zutreffenden Servern installiert werden muss, die als HubTransport-Rolle arbeiten. Dieser Code wird heute z.B.: mit Visual Studio 2005 in .NET 2.0 entwickelt und ergibt eine DLL, die auf den Server kopiert werden muss.
Der Transport Agent muss natürlich auf dem Server noch installiert und aktiviert werden.
Install-TransportAgent -Name "MSXFAQRoutingAgent" -TransportAgentFactory
"MSXFQ.Routingagent1" -AssemblyPath
"C:\Programme\MSXFAQ\routingagent1\routingagent1.dll"
Enable-TransportAgent -Identity "MSXFAQRoutnigAgent"
Danach muss der MSExchangeTransport neu gestartet werden, um den Agenten zu aktivieren.
Berechtigungen
Der Agent läuft mit den Rechten "NetworkAgent". Das ist viel weniger als
"LocalSystem" o.ä. Der Agent kann also nicht einmal etwas in das Eventlog
schreiben. Um Zugriff auf andere Ressourcen zu nutzen, müssen Sie daher
diese z.B. mit der Angabe expliziter Anmeldedaten durchführen.
Debugging
Es ist nicht wirklich einfach, einen Transport Agent zu debuggen. Aber die Funktion Pipelinetracing erlaubt es, jede Mail des Transports als EML-Datei abzuzweigen.
Set-TransportServer servername -PipelineTracingSenderAddress absender@domain.tld -PipelineTracingEnabled $true -PipelineTracingPath c:\pipeTrace
Damit kann ein Admin dann die EML-Datei per Notepad öffnen und anzeigen. Weitere Details finden Sie hierzu auf Pipelinetracing
3rd Party Transportevent Agenten und Beispiele
- Catchall Agent
http://catchallagent.codeplex.com/ - HOW TO:Rewrite the To address in Transport Agents on a Hub Server
http://blogs.msdn.com/akashb/archive/2009/02/24/how-to-rewrite-the-to-address-in-transport-agents-on-a-hub-server.aspx - Email and Attachment Archiving with a Transport Agent on Exchange
2007
http://gsexdev.blogspot.com/2007/09/email-and-attachment-archiving-with.html - Adding an X-header in an Exchange Routing Transport Agent in
Exchange 2007
http://gsexdev.blogspot.com/2007/09/adding-x-header-in-exchange-routing.html - Processing embedded attachments in a Transport Agent
http://gsexdev.blogspot.com/2007/10/processing-embedded-attachments-in.html - Adding an attachment in a Transport Agent on Exchange 2007
http://gsexdev.blogspot.com/2007/10/adding-attachment-in-transport-agent-on.html - Exchange 2007 Content Agent Log Message Tracker Gui
http://gsexdev.blogspot.com/2007/10/exchange-2007-content-agent-log-message.html - Uploading a document into a SharePoint Document library from a Exchange 2007 Transport Agent. http://gsexdev.blogspot.com/2007/10/uploading-document-into-sharepoint.html
- Sample Exchange 2007 transport agent - add the name of the group to
subject line
http://msexchangeteam.com/archive/2008/06/25/449079.aspx
Weitere Links
- E2007:Hub/Transport
- E2K7 Disclaimer
- Pipelinetracing
- Was ist .NET ?
- .NET für Admins
-
Introducing Attachment Inspection in Transport Rules
http://msexchangeteam.com/archive/2009/05/11/451274.aspx -
How to Write Exchange 2007 Transport Agents
http://msexchangeteam.com/archive/2006/12/04/431755.aspx - Transport Agents
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/ExSDKIntroduction/html/2f3c8dd1-7640-49e2-9168-a8af6fd2f29e.asp - Using Pipeline Tracing to Diagnose Transport Agent Issues
http://www.microsoft.com/technet/prodtechnol/exchange/E2k7Help/f3f5aa26-a83b-4430-a6f0-271878e635c0.mspx?mfr=true - How to Enable Pipeline Tracing
http://www.microsoft.com/technet/prodtechnol/exchange/E2k7Help/e7780499-9a6f-48b1-aea8-df88ecd8b18a.mspx?mfr=true - Overview of Transport Agents
http://www.microsoft.com/technet/prodtechnol/exchange/E2k7Help/e7389d63-3172-40d5-bf53-0d7cd7e78340.mspx?mfr=true - Transport Agent Commands
http://www.microsoft.com/technet/prodtechnol/exchange/E2k7Help/681d4212-4068-45bc-b986-ebe90156ead5.mspx?mfr=true - Overview of Transport Rules
http://www.microsoft.com/technet/prodtechnol/exchange/E2k7Help/e7389d63-3172-40d5-bf53-0d7cd7e78340.mspx?mfr=true - Microsoft Exchange Server 2007 Transport Server Role Architecture Diagrams - Deutsch http://www.microsoft.com/downloads/details.aspx?familyid=612F811D-2953-4C08-945E-833C17150083&displaylang=de
- Exchange 2007 SDK
http://www.microsoft.com/exchange - MSDN
http://msdn.microsoft.com - Transport Sink
http://msdn2.microsoft.com/en-us/library/aa579185.aspx - VB http://blogs.orcsweb.com/jeff/archive/2007/04/04/ms-exchange-2007-transport-agents.aspx
- Blog http://msexchangeteam.com/archive/2006/12/04/431755.aspx









