PDF2SMTP - Fehlersuche

Schritte und Stellen zur Fehlersuche:

Ehe Sie mich direkt anrufen, um einen Fehler zu melden oder Unterstützung bei der Suche nach Fehlern anzufordern bitte ich folgende Dinge zu prüfen:

Laden Sie sich zuerst das verbesserte und korrigierte Skript herunter.

Wenn Sie sich das Diagramm noch mal anschauen, dann sehen Sie mehrere Möglichkeiten, den Fehler einzukreisen:

Das Logfile

PDF2SMTP protokolliert sehr ausführlich seine Tätigkeit in einer Textdatei. Diese liegt als Standard in "c:\Programme\gs\redmon\pdf2smtp.log". Der Inhalt dieser Datei ist für die Fehlersuche sehr hilfreich.

1. Fehler beim Drucken

Halten Sie mal den Netzwerkdrucker an. Dazu müssen Sie auf dem Server mit dem frei gegebenen Drucker einfach die Warteschlange anhalten (Rechte Maustaste auf den Drucker).

Nun muss der Anwender erneut drucken. Prüfen sie:

Vergessen Sie nicht nach dem Erfolg den Drucker wieder zu starten.

2./3. REDMON

Wenn der Druckauftrag schon zum Server gelangt, dann ruft der Spooler den Portmonitor "REDMON" auf, welcher seinerseits das Programm REDRUN startet. Dieses holt die Daten ab und legt sie in eine temporäre Datei und startet dann erst den Batch PDF2SMTP. Dies "sehen" sie bei einigen Servern daran, dass auf dem Server ein schwarzes "DOS-Fenster" sichtbar wird. Als allererstes legt der BATCH eine Protokolldatei an. Schauen Sie in diese Protokolldatei (c:\Programme\gs\redmon\pdf2smtp.log)

Die Hauptarbeit dann erfolgt durch das Skript.

4. PDF2SMTP Batch

PDF2SMTP ist nun dafür zuständig die Daten zu konvertieren. Hierbei kann es auch zu Fehlern kommen:

Temporär können Sie den "DEL"-Befehl auskommentieren, damit PDF2SMTP die temporären Dateien nicht löscht und sie damit zu einer weiteren Untersuchung bereit stehen.

Sie können dann auch die einzelnen Aufrufe im Skript manuell durchführen, bis es funktioniert und Sie den Fehler gefunden haben. Meist sind es irgendwelche Sonderzeichen oder andere Dinge in den Variablen. Das Skript hat keine ausgefuchste Plausibilitätsprüfung.

ACHTUNG: Vermeiden Sie den Einsatz von "PAUSE" im Skript, da damit der Batch angehalten wird. Die Diagnosefunktionen über die Protokolldatei sind meist völlig ausreichend.

5. Versand per Mail und Zustellung

Ein weiteres Problem kann die Zustellung der Nachricht an das Postfach sein. Dazu sendet der Batch die Mail mittels BLAT an den vorgegebenen Empfänger, der aus dem Namen des Druckauftragbesitzers generiert wird. Kontrollieren Sie bitte:

Windows 2003 und Rechte

Je aktueller Windows wird, desto restriktiver sind die Berechtigungen gesetzt. Das gipfelt aktuell bei Windows 2003 darin, dass auf einem Server ein normaler Anwender nicht mehr die CMD.EXE aufrufen kann. Das bedeutet leider, dass PDF2SMTP auch nicht mehr vom Spooler gestartet werden kann, es sei denn Sie geben ihren Anwendern, die PDF2SMTP verwenden sollen, auch das Lese und Ausführen Recht auf die CMD.EXE.

Zudem letzt PDF2SMTP natürlich temporäre Dateien und Protokolldateien an. Auch hier sollten Sich sicherstellen, dass die Anwender und der Spooler natürlich die Berechtigungen dazu haben.

Sonstige Probleme

Folgende Probleme sind bekannt:

Ich hoffe Sie haben mittlerweile ihren Fehler gefunden. Ansonsten können Sie mir gerne ein Nachricht senden -> Kontakt

PDF2SMTP und Windows NT

Sowohl REDMON, Ghostscript, BLAT und das Batchfile sind unter Windows NT4 Server und Workstation ablauffähig. Allerdings haben sehr viele Windows NT4 Administratoren berichtet, dass das Script nicht aufgerufen wird.

Eine genauere Untersuchung eines NT4 Server mit FILEMON (Sysinternals) hat ergeben, dass der Spooler die REDMON.DLL startet und diese auch REDRUN aufruft, die Druckdatei in eine temporäre Datei schreibt und für das Batchfile sogar noch eine CMD.EXE geladen und gestartet wird. Warum auch immer kommt das Batchfile nicht zur Ausführung.

Allerdings ist es problemlos möglich, dass REDMON direkt ein Batchfile startet. Basierend auf dieser Tatsache wurde PDF2SMTP in der Version 1.5 derart umgestellt, dass nun direkt der Batch aufgerufen werden muss. Die Druckdaten, die der Portmonitor auf "STDOUT" leitet, kann der Batch selbst nicht annehmen. Dafür wird das Programm "REDFILE" (ebenfalls in REDMON enthalten) genutzt.

Damit ist es auch unter Windows NT4 möglich, PDF2SMTP einzusetzen. Laden Sie sich dazu einfach die Version 1.5 herunter und passen das Skript entsprechend an.

PDF2SMTP und RPC-Patch MS04-012 (KB828741)

Es mehren sich die Gerüchte, dass dieser Patch auch die Funktion von PDF2SMTP behindert. Nach der Installation des Patches soll es für Gerätetreiber nicht mehr möglich sein, Batchdateien zu starten. Ich konnte diese Situation aber auf meinen Systemen noch nicht beobachten, so dass ich diese Verhalten weder bestätigen noch verneinen kann. PDF2SMTP Version 1.5 ist ein Batchfile, der mit REDFILE die Dateien von STDIN abholt.

PDF2SMTP und Windows 98

Das Programm REDMON funktioniert auch mit Windows 95/98. Ebenso kann Ghostscript und BLAT unter Windows eingesetzt werden. Allerdings ist es mir bislang nicht gelungen, REDMON unter Windows 9x erfolgreich zum laufen zu bekommen. Weitere Untersuchungen hierzu haben ich mittlerweile eingestellt, da hierfür vermutlich keine Anfragen mehr kommen.

PDF2SMTP mit LPR und NetWare

Ein Windows Server kann auch über LPD/LPR angesprochen werden. Damit wäre es denkbar, dass Druckaufträge auch auf diesem Wege übermittelt werden. Allerdings erlaubt LPD/LPR keine Anmeldung und Identifizierung des Absenders. (NTUSERNAME). Daher können auf diesem Wege zwar PDF-Dateien erzeugt werden, aber BLAT kann diese nicht zurücksenden. Der Benutzer hierbei ist SYSTEM oder GAST. Sie könnten diesen Sonderfall abfangen und die PDF-Datei immer an den gleichen Benutzer oder einen Exchange öffentlichen Ordner senden oder in einem Verzeichnis bereitstellen.

Die meisten Postscript Treiber schreiben den Benutzernamen in die Postscriptdatei. Der Anfang kann z.B. so aussehen:

%!PS-Adobe-3.0
%%Title: pdf2smtp.cmd - Editor
%%Creator: PScript5.dll Version 5.2
%%CreationDate: 3/23/2004 19:11:35
%%For: fcarius
%%BoundingBox: (atend)
%%Pages: (atend)
%%Orientation: Portrait
%%PageOrder: Special
%%DocumentNeededResources: (atend)
%%DocumentSuppliedResources: (atend)
%%DocumentData: Clean7Bit
%%TargetDevice: (Ghostscript-Printer) (3010.600) 3
%%LanguageLevel: 3
%%EndComments

Für Systeme, bei denen die Nutzung von "%REDMON_USER% nicht möglich ist, wäre eine Auswertung des Headers möglich. Prüfen Sie vorher aber, ob der verwendete Postscript Treiber wirklich die Informationen hinterlegt

Keywords:PDF2SMTP C't Heise PDF BLAT Ghostscript