checkmail/checkmail.readme
Thomas Hochstein 0bd5c08c20 Initial commit.
Signed-off-by: Thomas Hochstein <thh@inter.net>
2010-01-15 09:01:52 +01:00

127 lines
4.4 KiB
Plaintext

NAME
checkmail
SYNOPSIS
checkmail.pl [-hqlr] [-m <host>] -f <file>|<address>
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 <thh@inter.net> gerne entgegen.
AUTHOR
Thomas Hochstein <thh@inter.net>
VERSION
V 0.2 [beta]
COPYRIGHT
© 2002-2005 Thomas Hochstein.
See source for license und warranty.