PDF2SMTP - Skript

Der Klebstoff

Nun fehlt noch ein wenig Code, um all diese Komponenten zusammen zu bringen. REDMON ruft ein Batch auf, der die ganze Arbeit dann macht. Hierzu dient ein Skript, welches Sie sich Herunterladen und auspacken müssen

Speichern Sie die Datei als PDF2SMTP.CMD unter C:\programme\gs\redmon. Sie müssen in der Batchdatei noch den Wert "Mailserver" durch ihren Exchange Server ersetzen. Weiterhin müssen sie "firma.de" durch ihren Domainnamen ersetzen.

Einstellungen

Im Batchfile sind einige Variablen zu setzen, ehe PDF2SMTP.CMD richtig funktioniert. Folgende Variablen sind anzupassen:

Parameter Bedeutung
pdf2smtplog Pfad für die Protokolldatei
Default': c:\Programme\gs\redmon\pdf2smtp.log
pdf2smtpgs Pfad zu Ghostscript
Default: "c:\programme\gs\gs8.14\bin\gswin32c.exe"
pdf2smtpblat Pfad zu BLAT
Default: "c:\Programme\gs\redmon\blat.exe"
maildomain SMTP-Domäne fuer die Mails
Default: firma.de
mailserver Mailserver zum Versand der Nachrichten. IP-Adresse oder DNS-Name
Default: mail.firma.de
pdfprotect Einstellungen für den PDF Schutz
Default: -1856
Einstellungen siehe PDF2SMTP - Ghostscript
pdfpassword PDF Kennwort
Default: geheim

Der Schutz wird erst aktiv, wenn auch ein Kennwort angegeben wird. Die Standardeinstellungen des Skriptes erstellen "ungeschützte Dateien.

Das Skript

Achten Sie darauf, das die BATCH-Dateien in den Archiven eine Versionsnummer tragen und vor dem Einsatz auf ihrem Server ausgepackt und eventuell umbenannt werden müssen, oder Sie in REDMON den Namen des Skriptes anpassen müssen.

pdf2smtp.bat.txt Die Version 0.9. Bitte nicht mehr verwenden

pdf2smtp-heise.zip
Das Originalscript aus der c't 06/2004

Dieses Skript wurde im Artikel veröffentlicht


pdf2smtp14.zip
Modifizierte Version anhand Feedback von Anwendern und Lesern. Änderungen:
  • -s "%REDMON_DOCNAME%" mit Anführungszeichen
  • -attach %PDFFILE%  als Vereinfachung
  • Mehr Abfragen auf Fehler und entsprechende Meldungen
  • Korrektur des Tippfehlers STMP durch SMTP :-)
  • Debugging für BLAT
    ACHTUNG: Aktuelle Version von BLAT von http://www.blat.net nutzen !!.
  • Support für Verschlüsselung und Dokumentschutz
  • Sonderzeichenbehandlung (Tipp von Andreas Husch)

pdf2smtp15.zip
Stark veränderte Version, speziell für Windows NT4. (siehe Details auf Fehlersuche. Achtung wichtige Änderungen:
  • REDMON-Port Einstellungen
    Bitte nur noch direkt den Batch aufrufen.
    Nicht mehr REDRUN.EXE nutzen
    Kommandozeilenparameter sind aktuell nicht mehr relevant. (Später vielleicht als Parametrisierung nutzbar)
  • Pflegen Sie in PDF2SMTP.CMD die Einstellungen

Diese Skript nutzt "REDFILE", um die Daten von STDOUT abzufangen.

pdf2smtp16.zip Anpassungen für neue Ghostscript.
  • Verbesserte 128 Bit R3 Encryption
  • Angepasste Security Flags

Hinweis für Windows 2003. PDF2SMTP legt nun die temporären Dateien nicht mehr unter C:\WINDOWS\TEMP an, sondern unter C:\Programme\gs\temp. Dieser Pfad kann im Batch auch angepasst werden. In diesem Verzeichnis muss "System" ausreichende Berechtigungen haben !!

Das gleiche gilt für die CMD.EXE. Der Spooler startet das Script mit den Rechten des Benutzers. Dazu muss der Benutzer aber Zugriff auf die CMD.EXE haben, die seit Windows 2003 nicht mehr gegeben ist. Geben Sie "Domain Benuter" das Lesen und Ausführen Recht auf die CMD.EXE

Zukünftig ist geplant, die Lösung als VBScript oder sogar .NET-Anwendung weiter zu entwickeln. Bis dahin können Sie andere Musterskripte als Anregung nutzen.

Andere Skripte

Die Veröffentlichung von PDF2SMTP hat sehr viele Personen angeregt, meinen einfachen Batch zu optimieren und zu verbessern. Ich möchte mich auf diesem Wege bei allen bedanken, die meinen Ansatz weiter entwickelt haben und mir ihre Programme, Skripte und Tools zugesendet haben.


pdfmail.zip
VB.NET Programm von Holger Manz

pdf2smtp-0807.zip
VBscript Programm von Nils Kaczenski

pdf2smtp-checkuser.zip
Mein PDF2SMTP ergänzt um Code, um die Mailadresse aus dem AD auszulesen. von Myrko.Leitner

pdf2smtp-perl.zip
Perl-Skript von Felix Bauer. Frankfurt.
In etwa der Batch mit der Sonderbehandlung von Leerzeichen.

pdf2smtp-delphi.zip
Delphi Source von Sven Geipel, Hof
Aufgrund der Probleme von PDF2SMTP bis Version 1.4 auf Windows NT4 hat Sven ein Delphiprogramm gebaut. Enthalten ist der Source und das ausführbare Programm.

Wenn Sie selbst das ultimative Klebstoffskript für PDF2SMTP entwickelt haben und hier veröffentlich sehen möchten, dann nichts wie her damit. ->Kontakt

Einschränkung

Ich nutze im Batch die Möglichkeit, den Betreff der Mail aus dem Jobnamen abzuleiten. Das macht es für den Anwender bei vielen Druckaufträgen leichter, die einzelnen Nachrichten zuzuordnen. Leider sind in diesen Jobnamen aber auch Sonderzeichen möglich, welche nicht mit BLAT übermittelt werden können, z.B. "/" und andere. Sollten Sie verstärkt damit Probleme feststellen, dann sollten Sie beim Aufruf von BLAT den Betreff fest vergeben. Ebenso wir der Dateiname des Auftrags dynamisch erstellt. Problem auch hier ist, dass es Namen gibt, die im Dateisystem nicht erlaubt sind.

All diese Sonderfälle sind in meiner kleinen Lösung nicht abgefangen. Vielleicht fällt demnächst mal ein VBScript ab, in dem diese Punkte optimiert sind. Bis dahin sollten Sie damit rechnen, dass es vielleicht nicht 100% funktioniert. Ich nutze das System  aber seit langem und bisher ist es noch nicht soweit gekommen, dass im normalen Betrieb einer dieser Sonderfälle aufgetreten ist.

Wer z.B. Probleme mit dem Betreff hat, möge folgende Zeile ersetzen:

set BODYFILE=%TEMP%\%REDMON_USER%-%REDMON_DOCNAME%-%REDMON_JOB%.TXT 

z.B. durch:

set BODYFILE=%TEMP%\%REDMON_JOB%.TXT

Seit der Version 1.4 ist aber auch eine Behandlung der meisten Sonderzeichen (Ausnahme "*") eingebaut.

Andere Ideen

Die Lösung mit PDF2SMTP ist nur ein Einsatzgebiet von REDMON. Es gibt viele weitere Dinge, die sie durch dieses kleine Programm auch ohne GhostScript umsetzen können. Hier einige Ideen:

Sie sehen, es sind eine Vielzahl anderer Lösungen mit REDMON denkbar.


Weiter

Keywords: PDF2SMTP C't Heise PDF BLAT Ghostscript