Disclaimer-Signatur per Skript

Aus diesem Grund habe ich über die COM-API des hmailserver eine eigene Routine für das Anhängen der Signatur definiert, die gewährleistet dass die Signatur korrekt in den Body-Bereich der HTML-Mail eingebaut wird. Wenn man dieses Skript verwendet ist darauf zu achten, dass die Signatur in der Domäne deaktiviert ist, damit die Signatur nicht doppelt erscheint. Der Inhalt für die Signatur wird aber trotzdem bei der Domänenkonfiguration hinterlegt. Das Skript greift auf diesen Inhalt zu. Das Skript enthält auch noch eine Abfrage auf einen bestimmten Text innerhalb der Mail, der nur in der Signatur enthalten ist. Dies stellt sicher dass die Signatur pro Mail nur ein Mal erscheint auch wenn mehrfach geantwortet wird. In diesem Fall sind das Wort „HRB“ und eine Nummer „4711“ als eindeutiger Text gewählt. Diese Textkombination sollte in den Mails eigentlich nur in der Signatur vorkommen. Es ist hier zu überlegen welche Textkombination wirklich nur in der Signatur auftaucht. Ggf. kann man auch einen Text in Hintergrundfarbe hinterlegen. Ein eigenes Tag, z. B. <signatur></signatur> sollte man hierfür nicht verwenden. Bei meinen Tests habe ich festgestellt, dass manche Mail-Clients solche Ihnen unbekannte Tags aus dem HTML-Code entfernen, das gleiche gilt auch für Attribute innerhalb eines HTML-Tags.

Die Datei Event.vbs im Pfad Events unterhalb des Installationsverzeichnisses von hmailserver sollte folgenden Inhalt haben:

' Sub OnClientConnect(oClient)
' End Sub

' Sub OnAcceptMessage(oClient, oMessage)
' End Sub

' Sub OnDeliveryStart(oMessage)
' End Sub

Sub OnDeliverMessage(oMessage)
call disclaimer(oMessage)
End Sub

' Sub OnBackupFailed(sReason)
' End Sub

' Sub OnBackupCompleted()
' End Sub

' Sub OnError(iSeverity, iCode, sSource, sDescription)
' End Sub

' Sub OnDeliveryFailed(oMessage, sRecipient, sErrorMessage)
' End Sub

sub disclaimer(oMessage)

dim disclaim
disclaim=true
dim disclaimplain
disclaimplain=true

Dim obApp
Set obApp = CreateObject("hMailServer.Application")
Call obApp.Authenticate("Administrator", "Passwort")
Dim obDomain
Set obDomain = obApp.Domains.ItemByName("Absenderdomain")

Dim SignaturHTML
SignaturHTML = obDomain.SignatureHTML

Dim SignaturPlain
SignaturPlain = obDomain.SignaturePlainText

if InStr(1, oMessage.FromAddress, "@Absenderdomain", 1) = 0 Then
disclaim = false
disclaimplain = false
end if

if Instr(oMessage.Body, "4711") > 0 AND Instr(oMessage.Body, "HRB") > 0 Then disclaimplain = false
if Instr(oMessage.HTMLBody, "4711") > 0 AND Instr(oMessage.HTMLBody, "HRB") > 0 Then disclaim = false

if disclaim=true then
if oMessage.HTMLBody <> "" then
varHTML=replace(oMessage.HTMLBody,"",SignaturHTML,1,-1,1)
oMessage.HTMLBody = varHTML
end if

end if
if disclaimplain=true then
oMessage.Body=oMessage.Body & vbcrlf & vbcrlf & SignaturPlain
end if
oMessage.Save
end sub

Wenn die Datei Event.vbs geändert ist, muss man im hmailserver unter Settings-Advanced-Scripts die Skripte neu laden.

hmailserver - Skripte neu laden


HOW-TO: Einrichten eines POP3-Connectors und automatisches serverseitiges Einfügen eines Disclaimers/Impressum für eMail-Nachrichten am Beispiel von Windows Small Business Server 2003