divendres, de març 30, 2007

Com possar un Peu als missatges enviats a través d'un Exchange

Per possar un peu (el típic “disclaimer”) als missatges d'un domini que s'envia a travé d'un Exchange (provat en la versió 2003, però en la 2000 també hauria de funcionar), per exemple “DOMINI_SMTP.cat, cal fer certs passos:

1.- Cal aconsguir el smtpreg.vbs, jo l'he tret d'aquí . El deixem, per exemple, a “C:\utils”

2.- Després cal crear un Script que contindrà el text del peu “en si”. Creem un arxiu anomenat, per exemple, “Signatura_als_correus_sortints_de_DOMINI_SMTP.vbs” dins de “C:\utils” que contingui això:

<SCRIPT LANGUAGE="VBScript">
Const cdoRunNextSink = 0

Sub ISMTPOnArrival_OnArrival(ByVal Msg, EventStatus)

TextDisclaimer = vbCrLf & "--------------------------"
TextDisclaimer = TextDisclaimer & vbCrLf & "Peu/Signatura Correus Enviats"
TextDisclaimer = TextDisclaimer & vbCrLf & "
--------------------------"

HTMLDisclaimer = "<p></p><hr><p><i>
Peu/Signatura Correus Enviats"
HTMLDisclaimer = HTMLDisclaimer & "</i></p><hr>"

If Msg.HTMLBody <> "" Then
'Search for the " </body>" tag and insert our disclaimer before that tag.
pos = InStr(1, Msg.HTMLBody, " </body>", vbTextCompare)
szPartI = Left(Msg.HTMLBody, pos - 1)
szPartII = Right(Msg.HTMLBody, Len(Msg.HTMLBody) - (pos - 1))
Msg.HTMLBody = szPartI + HTMLDisclaimer + szPartII
End If

If Msg.TextBody <> "" Then
Msg.TextBody = Msg.TextBody & vbCrLf & TextDisclaimer & vbCrLf
End If

'Commit the content changes to the transport ADO Stream object.
Msg.DataSource.Save ' Commit the changes into the transport Stream

EventStatus = cdoRunNextSink
End Sub

</SCRIPT >



caldria, doncs, substiutuir “Text de Signatura pels Correus Sortints!! “ pel text que ens plagui

3.- Per activar-ho, cal executar la següent comanda (suposant que el cscript està a la variable PATH, i sinó, només caldria posar la ruta fins al cscript.exe):

c:\>cscript C:\utils\smtpreg.vbs /add 1 onarrival SMTPScriptingHost CDO.SS_SMTPOnArrivalSink "mail from=*@DOMINI_SMTP.cat"

c:\> cscript C:\utils\smtpreg.vbs /setprop 1 onarrival SMTPScriptingHost Sink ScriptName "C:\utils\Signatura_als_correus_sortints_de_DOMINI_SMTP.vbs"


4.- Ja està fet!, un cop reiniciat el servei SMTP, els missatges enviats des d'adreçes “DOMINI_SMTP.cat” ja tindiràn el peu (el "disclaimer") desitjat.


L'escript smtpreg també té altre comandes que seràn útils, per exemple aquestes dos:

// Treure'l: el Peu:
cscript C:\utils\smtpreg.vbs /remove 1 OnArrival SMTPScriptingHost

//Llistar els events que tenim registrats:
cscript C:\utils\smtpreg.vbs /enum


Enllaços pertinents:

Això mateix explicat per Microsoft: http://support.microsoft.com/kb/317680/es