watchDirectory Hilfe > Plugins > Automatisch E-Mail senden > das Makro $CALL$
Benutzung des $CALL$ Makros
Innerhalb des An:-Feldes, des Betreffs und des Textbereiches einer E-Mail kann dieses Makro verwendet werden, um ein Batch-Script zu starten. In einem solchen Script können diese Umgebungsvariablen verwendet werden. Das "Ergebnis", das das Script zurückliefert, wird dann anstelle des $CALL$ Makros eingesetzt.
Beim Aufruf des Scriptes setzt die Variable WD_EMAIL_PART entweder das Feld "An:" (wenn das Script aufgerufen wurde, um E-Mailempfäbger zu setzen), das Feld "Betreff" (wenn das Script aufgerufen wurde, um den Betreff zu setzen) oder den "Textbereich" (wenn das Script aufgerufen wurde, um Text zu setzen).
Syntax
$CALL:C:\Full\path\to\batfile.bat$
Beispiel: dynamisches Definieren eines Betreffs in einer E-Mail basierend auf Dateiinhalten
Die Aufgabe überwacht ein Verzeichnis, in das Logdateien geschrieben werden. Diese Logdateien sollen automatisch an die Supportabteilung gesendet werden, die die Logdateien auf Fehler überprüft. Um E-Mails besser erkennen zu können, bei denen in den Logdateien ein Fehler protokolliert wurde, überprüft das Script den Inhalt der Logdateien auf das Wort "Error" und ändert den Betreff der Mail entsprechend ab:
rem use the FINDSTR command to look for the string Error inside the detected file FINDSTR /I "Error" "%WD_FILE%" IF %errorlevel% EQU 0 GOTO :ErrorFound GOTO :ErrorNotFound :ErrorFound ECHO [ERROR] %WD_FILE_N% Processing completed, Errors were found > "%WD_RESULTFILE%" GOTO :EOF :ErrorNotFound ECHO %WD_FILE_N% Processing completed without issues > "%WD_RESULTFILE%" GOTO :EOF
Beispiel: sende die Hälfte der hereinkommenden Mails an John, die andere Hälfte an Eric
Die beiden Nutzer John und Eric sind für hereinkommende Dateien zuständig. Das nachfolgende Script verteilt die hereinkommenden Mails abwechselnd an John und Eric.
rem WD_CUREVT contains a unique number assigned to the current event (detected file) rem when it is an odd number (1, 3, 5, ...) the email should go to John. rem get the modulo of WD_CUREVT (this will set the MOD variable to 0 or 1). SET /A MOD=%WD_CUREVT% % 2 IF %MOD% EQU 1 GOTO :john ECHO eric@example.com > "%WD_RESULTFILE%" ECHO CC:Help Desk^<support@example.com^> >> "%WD_RESULTFILE%" GOTO :EOF :john ECHO john@example.com > "%WD_RESULTFILE%" ECHO CC:Help Desk^<support@example.com^> >> "%WD_RESULTFILE%"