Disclaimer einfügen

Als Disclaimer bezeichnet man einen Anhang an jede Mail, um z.B. die Firmenadresse oder andere Informationen mit ausgehenden Mails zu übermitteln. Beim Einsatz von Programmen wie Outlook wird dies oft als "Signatur" bezeichnet.

Links zu kommerziellen Produkten finden Sie auf MSXFAQ - Kommerzielle Disclaimer

Unterstützung durch Net at Work:
Aufgrund der aktuellen Änderung zum 01. Jan 2007 bieten wir ihnen schlüsselfertige Lösungen an.
http://www.netatwork.de/outlookdisclaimer.htm

Für Exchange 2007 funktioniert der Weg über SMTP-Sinks nicht mehr. Aber Exchange 2007 Transportrules haben die Funktion schon eingebaut. Siehe E2K7 Disclaimer. Exchange 2010 kann auch Disclaimer mit HTML und Active Directory Felder addieren.

Warum ein Disclaimer ?

Nicht erst seit den Änderungen in verschiedenen Gesetzen am Januar 2007 ist es für Firmen erforderlich, an jede ausgehende Mail einige essentielle Informationen anzufügen. Details dazu finden Sie auf:

Bitte machen Sie sich selbst ein Bild, welche Informationen Sie an jede Mail anhängen müssen. Paragraph 37a im Handelsgesetzbuch schreibt z.B.

(1) Auf allen Geschäftsbriefen des Kaufmanns gleichviel welcher Form, die an einen bestimmten Empfänger gerichtet werden, müssen seine Firma, die Bezeichnung nach § 19 Abs. 1 Nr. 1, der Ort seiner Handelsniederlassung, das Registergericht und die Nummer, unter der die Firma in das Handelsregister eingetragen ist, angegeben werden.

Aber mittlerweile gibt es auch Urteile in die andere Richtung:
"Das Fehlen der seit Jahresbeginn verbindlichen Geschäftsangaben in E-Mails wie Geschäftsführer, Rechtsform und Sitz der Gesellschaft etc. - vorher nur in Briefen Pflicht - ist kein Verstoß gegen das Wettbewerbsrecht und daher nicht abmahnfähig (OLG Brandenburg)"
Quelle: iX, 9/2007 Seite 16.

Absatz 2 beschreibt dann ein paar Ausnahmen, wo es nicht sein muss und dass das Registergericht per Zwangsgeld dagegen vorgehen kann. Für AGs und GmbHs gelten ähnliche Vorschriften. Bitte informieren Sie sich.

Es dürfte nämlich auch jede Menge Personen oder Anwälte geben, die im Rahmen einer Abmahnung natürlich ihr zweifelhaftes Spiel damit beginnen werden. Schließlich "spart" eine Firma, die das nicht macht,  ja Geld und das könnte als Wettbewerbsvorteil ausgelegt werden.

Wenn ich mir andererseits aber die Disclaimer einiger Firmen anschaue, dann sinniere ich schon über einen Disclaimer-Killer, der Disclaimer erkennt und wieder abschneidet. Denn es dürfte ja wieder nur eine politisch motivierte Aktion ohne realen Zusammenhang sein, die die Postfächer aller Empfänger aufbläht und die Datenkosten für mobile Geräte erhöht. Ich sehr schon die Antworten auf Antworten auf Antworten, die letztlich zu 90% aus Disclaimern besteht.

Wie und wo und wann ?

Natürlich kann nun jeder Mitarbeiter in seinem Outlook einfach eine Signatur einstellen. Aber das hilft ihnen als Firmeninhaber nicht wirklich weiter, da Sie zum einen nicht zentral sicherstellen können, dass wirklich jeder Anwender solch eine formal korrekte Signatur einstellt. Zum anderen gibt es Zugangswege zu Exchange (z.B. OWA, ActiveSync, WAP etc.), die eine automatische Signatur nicht einfach unterstützen.

Die einzig zuverlässige Lösung ist eine servergestützte Signatur. In Verbindung mit Exchange kann dies nur über einen Transport EventSink oder ein Gateway zwischen Exchange und Internet erreicht werden.

Idealerweise sorgt daher jedes System, welches eine Mail nach extern übermittelt für eine korrekte Signatur. Am Beispiel des häufig zitierten Disclaimer Scripts lässt sich zumindest gut die Funktion eines Transport Event Sink auf dem virtuellen SMTP-Servers aufzeigen.

Das Skript

Folgendes Skript sollten Sie als "disclaimer.vbs" auf dem Exchange Server an einer geeigneten Ort speichern. Da der SMTP-Server als "LocalSystem" läuft, muss das Konto "SYSTEM" Leserechte auf diese Datei haben.

<SCRIPT LANGUAGE="VBScript">

Sub ISMTPOnArrival_OnArrival(ByVal objMessage, EventStatus )
    Dim objStream
    Set objStream = objMessage.GetStream
    obhStream.Position = objStream.Size
    objStream.WriteText "-----------------------------------" & vbCrLf
    objStream.WriteText "Disclaimer Zeile 1" & vbCrLf
    objStream.WriteText "Disclaimer Zeile 2" & vbCrLf
    objStream.WriteText "Disclaimer Zeile 3" & vbCrLf
    objStream.Flush
    objMessage.DataSource.Save
    EventStatus = 0
End Sub
</SCRIPT>

In den TechNet Artikeln finden sich ausgereifter Skripte, die auch mit HTML und TEXT-Nachrichten korrekt umgehen. z.B. im folgendem TechNet Artikel:

Auch diverse kommerzielle Lösungen liefern ihnen hier natürlich weitergehende Lösungen. Verstehen Sie dieses kleine Skript eher als Technologiedemonstration.

Der SMTP-Server

Diese Skript muss auf dem Server natürlich noch registriert werden und zwar wie folgt (jeweils einer Zeile):

cscript smtpreg.vbs /add 1 OnArrival Disclaimer
CDO.SS_SMTPOnArrivalSink "mail from=*@firma.de"

cscript smtpreg.vbs /setprop 1 OnArrival Disclaimer Sink
ScriptName "c:\Temp\Disclaimer.vbs"

Die beiden Zeilen registrieren seinen SMTP-Sink, der bei der Ankunft einer Nachricht ausgeführt wird, wenn die Absenderadresse von der Firma selbst ist. Damit werden eingehende Mails von extern nicht bearbeitet.

SMTP-Server kaskadieren.

Das Skript ist ein "On Arrival"-Sink, d.h. er wird gefeuert, wenn eine Mail den SMTP-Server erreicht. Leider gibt es hier eine Designschwäche von Exchange, dass ausgehende Mails, die von MAPI-Empfängern gesendet werden, nicht auf diesem Weg verändert werden können. Das CDO-Objekt ist nur eine temporär Kopie und keine Repräsentation der Mail. Aus diesem Grund müssen Sie zwei SMTP-Server hintereinander schalten. Siehe auch:

As mentioned earlier, the CDO_OnArrival event is a wrapper around the transport OnSubmission event that provides a handle to the messages in the CDO message format. The major benefit is that the Message object interface has many useful methods, such as the parsing of MIME and RFC 822 headers. The major drawback is that the CDO interface adds significant overhead, and is synchronous. The CDO_OnArrival event is most appropriate for sinks that are run on very few messages. This is the only piece that is easily programmable using a high-level scripting language like VBScript.
Quelle: http://msdn2.microsoft.com/en-us/library/ms998608.aspx#transportevents_topic6

Diese relativ umständlich Lösung ist allerdings nicht erforderlich, wenn Sie z.B.: dedizierte Connectorserver für die Übermittlung einsetzen. Dann senden ihre Mailboxserver die Nachrichten natürlich per SMTP an den Connectorserver und das Skript kann diese problemlos ändern.

Kommerzielle Lösungen können natürlich z.B.: in C++ geschrieben werden und dann den SMTP "OnPostProcessing"-Sink verwenden. Hier kann dann wirklich jede Mail verändert werden. Allerdings steht dann nicht das CDO-Message-Objekt zur Verfügung.

Weiterhin sollten Sie folgende KB-Artikel im Auge behalten, wenn Sie sehr viele Mails umschlagen:

Disclaimer und Bilder

Immer mehr Firmen möchten nicht nur einfache TEXT-Mails senden, sondern senden formatierte HTML-Nachrichten. Da bietet es sich natürlich an, gleich auch Bilder in den Trailer mit anzuhängen, zumindest wenn es sich um HTML-Nachrichten handelt. Was aber auf den ersten Blick so einfach aussieht, hat durchaus eine Fallen. Hier die drei möglichen Varianten

Variante 1: Bild per Hyperlink

Die einfachste Variante ist die Einbindung als Hyperlink. Ein einfacher "IMG-Link" im Trailer verweist auf das Bild, welches Sie z.B. auf dem öffentlichen Webserver verfügbar gemacht haben. Das könnte im HTML-Disclaimer dann wie folgt aussehen:

<img border="0" src="http://www.example.com/images/mailtraier.gif">

Die Einschränkungen dabei sind

Also ist diese Variante eine universelle und kompatible aber keine sichere Variante.

Variante 2: Einbettung in HTML

Wie auf http://en.wikipedia.org/wiki/Data_URL beschrieben ist, kann man auch direkt in die HTML-Datei binäre Daten einbinden. Auch auf diesem Weg kann man z.B.: Bilder in einen Disclaimer einfügen. Hier ein Beispiel:

<img src="data:image/png;base64,
iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAABGdBTUEAALGP
C/xhBQAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9YGARc5KB0XV+IA
AAAddEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIFRoZSBHSU1Q72QlbgAAAF1J
REFUGNO9zL0NglAAxPEfdLTs4BZM4DIO4C7OwQg2JoQ9LE1exdlYvBBeZ7jq
ch9//q1uH4TLzw4d6+ErXMMcXuHWxId3KOETnnXXV6MJpcq2MLaI97CER3N0
vr4MkhoXe0rZigAAAABJRU5ErkJggg==" alt="Red dot" />

Allerdings ignoriert der Internet Explorer 7 diese Daten und stellt nur ein leeres Kästchen mit einem roten X dar. Da auch Outlook und andere Programme bei der Anzeige von HTML-Mails einfach nur diese Controls verwenden, kann ich als Versender daher nicht sicher sein, dass das Bild auch dargestellt wird. Also ist auch dies keine zufriedenstellende Lösung.

Variante 3: Anlage mit Link

Aber Outlook zeigt ja, dass Bilder in einer Mail funktionieren können und so habe ich einfach eine Mail mit Bild aus Outlook versenden und mir im Quelltext angeschaut, wie dies erreicht wird. Im wesentlichen sieht es so aus, dass in der HTML-Mail ein Tag drin steht und das Bild über eine "ClassID" eingebunden wird. Das Bild selbst ist dann eine Anlage an die Mail, in der auch die ClassID hinterlegt wird. Hier ein Auszug der Mail:

...
<IMG src= "cid:001090815@01022007-34BF">
...

------=_NextPart_001_011E_01C7461B.2A5C6CB0
Content-Type: image/jpeg;
name="adtree.jpg"
Content-Transfer-Encoding: base64
Content-ID: <001090815@01022007-34BF>

/9j/4AAQSkZJRgABAQEBLAEsAAD/2wBDAAUDBAQEAwUEBAQFBQUGBwwIBwcHBw8LCwkMEQ8SEhEP
ERETFhwXExQaFRERGCEYGh0dHx8fExciJC....
.....

Dieses Verfahren scheint also zumindest in einer Microsoft Umgebung sauber zu funktionieren. Erfahrungen über andere Mailempfänger und deren Anzeige solcher Mails liegen mir leider nicht vor.

In Verbindung mit einer Software, die automatisch Disclaimer anhängt, muss man nun nur sicherstellen, dass diese Software auch Anlagen anfügen kann und dabei auch eine feste Content-ID einfügt, auf die man dann im HTML-Disclaimer verweisen kann.

Sonstige Verbesserungsmöglichkeiten

Das Einbinden eines Disclaimers an eine ausgehende Mail mit einem SMTP-OnArrivalEventsink ist zwar einfach, wie das Beispiel auch zeigt, aber hat durchaus einige Einschränkungen. Hier ist Platz für eigene Erweiterungen oder kommerzielle Lösungen

Leider habe ich noch kein "fertiges Skript", welches all diese Anforderungen erfüllt. Es gibt aber einige kommerzielle Werkzeuge, die solche Lösungen bereit stellen.

Disclaimer Killer

Wenn ich mir nun vorstelle, wie viele Disclaimer meine Mailbox zukünftig  füllen und wie viele Antworten auf Antworten am ende überwiegend aus Disclaimern bestehen,  dann werde ich wohl noch einen anderen Sink nachschieben müssen; einen "Disclaimerkiller". Über die gleiche Methode kann ich ja jede eingehende Mail "untersuchen" und wenn z.B.: in den letzen Zeilen eine "Trennlinie" zu finden ist, könnte man den gleich abschneiden. Die Blackberry und ActiveSync Anwender werden es sicher danken. Und die Kaskadierung von Disclaimern in Antworten auf Antworten könnten so auch reduziert werden. Früher haben die Anwender bei Disclaimern diese durch ein Zeile mit "--"  eingeleitet. Einige Mailprogramme haben diese dann sogar automatisch beim Antworten entfernt.

Weitere Links

Kommerzielle Lösungen

Hier finden Sie einige Lösungen, die zum Teil auf dem Server und zum Teil auf einer Client Erweiterung basieren. Die Liste erhebt keinen Anspruch auf Vollständigkeit.

Keywords:Disclaimer VBscript EventSink