Shell: Mit swaks die Validität einer Email prüfen

Sehr oft kommt es vor, dass man eine Email auf Ihre Echtheit prüfen möchte.
Dazu könnte man nun ein Perlscript, oder ein C-Programm schreiben, oder einfach das Tool meiner Wahl zur Überprüfung von SMTP-Servern nutzen.

swaks ist das schweizer Taschenmesser für das Testen von SMTP-Einstellungen und sollte bei keinem Admin auf der Shell fehlen.

DESCRIPTION
swaks‘ primary design goal is to be a flexible, scriptable,transaction-oriented SMTP test tool. It handles SMTP features and extensions such as TLS, authentication, and pipelining; multiple version of the SMTP protocol including SMTP, ESMTP, and LMTP; and multiple transport methods including unix-domain sockets, internet-domain sockets, and pipes to spawned processes. Options can be specified in environment variables, configuration files, and the command line allowing maximum configurability and ease of use for operators and scripters.

swaks gibt es in den ports von FreeBSD und ist auch im Repository für Debian Squeeze zu finden. Somit kann es einfach und schnell installiert werden.
swaks hat einiges auf dem Kasten und soll nun auch nicht im kompletten hier erklärt werden.
Die man-page hat einiges zu bieten und sollte mal studiert werden, denn mit diesem Perl-Tool geht es schon ein wenig fixer einen STMP-Server zu testen anstelle telnet zu nehmen.

Denn Vorgang kann man sich für das folgende Beispiel so vorstellen:
– Finde den MX für den Sender und Empänger
Als simples Beispiel: /usr/bin/dig mx gmail.com |grep MX|awk ‚{if (NR!=1) {print}}’| awk ‚{print $6}‘
– Nehme MX und spreche mit Ihm über telnet.

Auf der Shell sieht es dann so aus:

seraphyn@sayuri:~$ swaks --to hebeldebbelhatzeputze@gmail.com --from hebeldebbelhatzeputze@gmail.com
 === Trying gmail-smtp-in.l.google.com:25...
 === Connected to gmail-smtp-in.l.google.com.
 -> EHLO sayuri
 -> MAIL FROM:
 -> RCPT TO:
 === Connection closed with remote host.

1. –to und –from geben die zu prüfende Emailadresse an
3. Anstelle XXX würde dort die öffentliche IP von dem swaks-Nutzer stehen
14. Gibt an, dass es die Email-Adresse nicht gibt

Das könnte man nun in einem Script nutzen, welches mit mailcheck $EMAILADRESSE aufgerufen wird und einfach ein ↓ (not valid) oder ein ↑ (valid) ausgibt.
Viel Spaß mit swaks und beim coden…