127 lines
4.4 KiB
Plaintext
127 lines
4.4 KiB
Plaintext
|
NAME
|
|||
|
checkmail
|
|||
|
|
|||
|
SYNOPSIS
|
|||
|
checkmail.pl [-hqlr] [-m <host>] -f <file>|<address>
|
|||
|
|
|||
|
DESCRIPTION
|
|||
|
checkmail pr<70>ft die Zustellbarkeit von E-Mail-Adressen. Es ist
|
|||
|
entweder die zu pr<70>fende Adresse als letztes Argument oder
|
|||
|
mit dem Parameter -f eine Datei mit zu pr<70>fenden Adressen zu
|
|||
|
<20>bergeben.
|
|||
|
|
|||
|
Argumente:
|
|||
|
|
|||
|
-h
|
|||
|
Mit dem Argument -h wird eine kurze Hilfe ausgegeben.
|
|||
|
|
|||
|
-q
|
|||
|
Mit dem Argument -q werden alle Ausgaben unterdr<64>ckt;
|
|||
|
das Script beendet sich nur mit einem Exit-Status zwischen
|
|||
|
0 und 3.
|
|||
|
|
|||
|
-l
|
|||
|
Mit dem Argument -l wird ein ausf<73>hrliches Logging des
|
|||
|
SMTP-Dialogs aktiviert.
|
|||
|
|
|||
|
-r
|
|||
|
Mit dem Argument -r wird auch eine gezielt ung<6E>ltige Adresse
|
|||
|
gepr<70>ft, um festzustellen, ob der Host nicht einfach jede
|
|||
|
Mailadresse ohne Pr<50>fung akzeptiert.
|
|||
|
-m
|
|||
|
Mit dem Argument -m, gefolgt nach Leerzeichen von einem
|
|||
|
Hostnamen, kann statt der Abfrage des f<>r die Domain
|
|||
|
zust<73>ndigen Hosts per DNS die Zustellf<6C>higkeit bei einem
|
|||
|
bestimmten Host gepr<70>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<70>fenden Mailadressen
|
|||
|
aus einer Datei eingelesen werden, die jeweils eine Adresse
|
|||
|
pro Zeile enth<74>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<75>lligen Adresse.
|
|||
|
|
|||
|
Funktionsweise:
|
|||
|
|
|||
|
Vor dem ersten Aufruf ist innerhalb des Scripts die
|
|||
|
Basiskonfiguration vorzunehmen.
|
|||
|
|
|||
|
Danach kann das Script unter Angabe der zu pr<70>fenden E-Mail-Adresse
|
|||
|
aufgerufen werden. Es versucht den oder die zust<73>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<75>hren,
|
|||
|
um dann die Antwort des Mailservers auszuwerten.
|
|||
|
|
|||
|
Um Mailserver zu erkennen, die zun<75>chst jede Mailadresse akzeptieren
|
|||
|
und unerw<72>nschte Mail erst sp<73>ter bouncen oder unterdr<64>cken, kann
|
|||
|
danach ein weiterer Test mit einer sicher ung<6E>ltigen Mailadresse
|
|||
|
ausgef<65>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<69>en, da<64> die die Testverbindung aus
|
|||
|
andere Gr<47>nden abgewiesen wird.
|
|||
|
|
|||
|
Wenn (gar) keine Textausgabe gew<65>nscht ist, kann diese vermittels -q
|
|||
|
unterdr<64>ckt werden; das Script beendet sich dann mit einem der vier
|
|||
|
folgenden Statuscodes:
|
|||
|
|
|||
|
0: Adresse g<>ltig oder Massenaufruf (-f)
|
|||
|
1: Adresse ung<6E>ltig
|
|||
|
2: Adresse kann nicht gepr<70>ft werden (-r und negativer Test)
|
|||
|
3: tempor<6F>rer Fehler
|
|||
|
|
|||
|
Mehrere Mailadressen k<>nnen mit Hilfe des Parameters -f innerhalb
|
|||
|
einer Datei (eine Adresse pro Zeile) <20>bergeben werden; in diesem
|
|||
|
Fall wird immer der Status "0" zur<75>ckgegeben.
|
|||
|
|
|||
|
Schlie<69>lich kann mit Hilfe des Parameters -m die DNS-Abfrage
|
|||
|
unterdr<64>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<65>hrt werden! Ggf. kann ein
|
|||
|
erneuter Aufruf von checkmail.pl -l f<>r Klarheit sorgen, ob der Test
|
|||
|
wegen der Auswertung einer Blacklist - unabh<62>ngig von der verwendeten
|
|||
|
Adresse - fehlschl<68>gt.
|
|||
|
|
|||
|
DEPENDANCIES
|
|||
|
Die folgenden CPAN-Module werden neben Perl 5.6.1 oder h<>her ben<65>tigt:
|
|||
|
|
|||
|
Net::DNS
|
|||
|
|
|||
|
BUGS
|
|||
|
- Fehler und Fehleingaben werden gr<67><72>tenteils nicht abgefangen.
|
|||
|
|
|||
|
Weitere Bugs nimmt <thh@inter.net> gerne entgegen.
|
|||
|
|
|||
|
AUTHOR
|
|||
|
Thomas Hochstein <thh@inter.net>
|
|||
|
|
|||
|
VERSION
|
|||
|
V 0.2 [beta]
|
|||
|
|
|||
|
COPYRIGHT
|
|||
|
<20> 2002-2005 Thomas Hochstein.
|
|||
|
See source for license und warranty.
|