NAME checkmail SYNOPSIS checkmail.pl [-hqlr] [-m ] -f |
DESCRIPTION checkmail prüft die Zustellbarkeit von E-Mail-Adressen. Es ist entweder die zu prüfende Adresse als letztes Argument oder mit dem Parameter -f eine Datei mit zu prüfenden Adressen zu übergeben. Argumente: -h Mit dem Argument -h wird eine kurze Hilfe ausgegeben. -q Mit dem Argument -q werden alle Ausgaben unterdrückt; das Script beendet sich nur mit einem Exit-Status zwischen 0 und 3. -l Mit dem Argument -l wird ein ausführliches Logging des SMTP-Dialogs aktiviert. -r Mit dem Argument -r wird auch eine gezielt ungültige Adresse geprüft, um festzustellen, ob der Host nicht einfach jede Mailadresse ohne Prüfung akzeptiert. -m Mit dem Argument -m, gefolgt nach Leerzeichen von einem Hostnamen, kann statt der Abfrage des für die Domain zuständigen Hosts per DNS die Zustellfähigkeit bei einem bestimmten Host geprüft werden. Beispiel: checkmail.pl -m test.host.example mail@domain.example -f Mit dem Argument -f, gefolgt nach Leerzeichen von einem Dateinamen, kann eine ganze Reihe von zu prüfenden Mailadressen aus einer Datei eingelesen werden, die jeweils eine Adresse pro Zeile enthält. Beispiel: checkmail.pl -f adressen.txt Basiskonfiguration: Die Basiskonfiguration erfolgt innerhalb des Scripts. Anzugeben sind: $config{'helo'}: Der im SMTP-Dialog für HELO/EHLO zu verwendende Hostname. $config{'from'}: Die Absenderadresse (Envelope-From:) für den Test. $config{'rand'}: Der Localpart der für den Parameter -r erforderlichen zufälligen Adresse. Funktionsweise: Vor dem ersten Aufruf ist innerhalb des Scripts die Basiskonfiguration vorzunehmen. Danach kann das Script unter Angabe der zu prüfenden E-Mail-Adresse aufgerufen werden. Es versucht den oder die zuständigen MX (Mail eXchanger) für die Domain der Mailadresse zu ermitteln (ggf., falls nicht vorhanden, an den entsprechenden Host zuzustellen), nach dort zu verbinden und den SMTP-Dialog bis zum "RCPT TO:" durchzuführen, um dann die Antwort des Mailservers auszuwerten. Um Mailserver zu erkennen, die zunächst jede Mailadresse akzeptieren und unerwünschte Mail erst später bouncen oder unterdrücken, kann danach ein weiterer Test mit einer sicher ungültigen Mailadresse ausgeführt werden (-r). Nicht nur das Ergebnis des Tests, sondern auch der Dialog mit dem Mailserver kann vermittels des Parameters -l ausgegeben werden; dies ist hilfreich, um auszuschließen, daß die die Testverbindung aus andere Gründen abgewiesen wird. Wenn (gar) keine Textausgabe gewünscht ist, kann diese vermittels -q unterdrückt werden; das Script beendet sich dann mit einem der vier folgenden Statuscodes: 0: Adresse gültig oder Massenaufruf (-f) 1: Adresse ungültig 2: Adresse kann nicht geprüft werden (-r und negativer Test) 3: temporärer Fehler Mehrere Mailadressen können mit Hilfe des Parameters -f innerhalb einer Datei (eine Adresse pro Zeile) übergeben werden; in diesem Fall wird immer der Status "0" zurückgegeben. Schließlich kann mit Hilfe des Parameters -m die DNS-Abfrage unterdrückt und die Verbindung zu einem bestimmten Host erzwungen werden. Hinweis: Der Test sollte nicht von einem Dialup-Host oder einem Host auf einer sonstigen Blacklist aus durchgeführt werden! Ggf. kann ein erneuter Aufruf von checkmail.pl -l für Klarheit sorgen, ob der Test wegen der Auswertung einer Blacklist - unabhängig von der verwendeten Adresse - fehlschlägt. DEPENDANCIES Die folgenden CPAN-Module werden neben Perl 5.6.1 oder höher benötigt: Net::DNS BUGS - Fehler und Fehleingaben werden größtenteils nicht abgefangen. Weitere Bugs nimmt gerne entgegen. AUTHOR Thomas Hochstein VERSION V 0.2 [beta] COPYRIGHT © 2002-2005 Thomas Hochstein. See source for license und warranty.