Also ich versuche(!) mich mal möglichst kurz zu fassen:
SOLL: Ein Shell-Script soll an einem Prompt eine E-Mail-Adresse abfragen, den Mailserver der Domain ermitteln.
Dann soll der Mailserver mittels telnet/netcat abgefragt werden ob die E-Mail-Adresse existiert ohne ein Nachricht zu senden. (ähnlich wie z.B. bei http://www.mailtester.com/ nur eben per shell)
ABER: Da bin ich noch lange nicht.
Dies ist lediglich Phase1, ein Shell-Script finden über das man jeden(!) Mail- Server per Telnet/netcat auf Port 25 abfragen kann.
Derzeit schlage ich mich mit Shell-Scripten rum in denen der MailServer und die E-Mail-Adresse statisch eingetragen sind.
Weil diese Scripte einfach stehen bleiben.
BEMERKUNG: die Befehle der unten zu sehenden Scripte einzeln und manuell in die Shell eingetragen funktionieren immer aber eben nicht als Shellscript zusammen gefasst.
Drei verschiedene Versionen habe ich getestet
1. Version (telnet pur)
erstellt u.a. nach https://de.wikipedia.org/wiki/Simple_Mail_Transfer_Protocol
#!/bin/bash
telnet mx00.kundenserver.de 25
HELO [Hostname meines Mailservers]
MAIL FROM:<Absende-Adresse>
RCPT TO:<Empfangs-Adresse>
DATA
From: <Absende-Adresse>
To: <Empfangs-Adresse>
Subject: Testmail Script Telnet VM
Lorem ipsum dolor sit amet, consectetur adipisici elit, eiusmod tempor incidunt ut labore et dolore magna aliqua.
.
QUIT
Funktionieren bei allen getesteten Servern (mx01.t-online.de und mx00.kundenserver.de) bis Zeile 'telnet -a . . . 'befinden sich dann immer noch in Telnet-Shell haben aber offensichtlich probs mit den Zeilenumbrüchen
man kann die Telnet-Shell dann sogar noch manuell weiterverwenden.
2. Version (per netcat)
siehe: http://www.linuxjournal.com/content/sending-email-netcat
besteht aus zwei Dateien
Datei 1 z.B. mt_t-online_nc.sh
/bin/nc mx01.t-online.de 25 < mt_t-online_nc.txt >> protokoll_t-online.txt
Datei 2 z.B. mt_t-online_nc.txt
HELO [Hostname meines Mailservers]
MAIL FROM:<Absende-Adresse>
RCPT TO:<Empfangs-Adresse>
DATA
From: <Absende-Adresse>
To: <Empfangs-Adresse>
Subject: Testmail Script Netcat VM
Lorem ipsum dolor sit amet, consectetur adipisici elit, eiusmod tempor incidunt ut labore et dolore magna aliqua.
.
QUIT
Funktioniert nur bei t-online.de,bleibt bei GMX und 1&1 vor dem ersten Telnet Befehl (HELO bzw. EHLO) einfach stehen.
Gmail gibt zurück: '451 4.5.0 SMTP protocol violation, see RFC 2821 k44-v6si1051607wre.219 - gsmtp'
3. Version (telnet gepiped)
Siehe: https://community.spiceworks.com/topic/157617-sending-mail-using-smtp-commands-and-shell-script-not-sending-mail-body
#!/bin/bash
(
echo helo [Hostname meines Mailservers] ;
sleep 1;
echo mail from: Absende-Adresse;
#sleep 2;
echo rcpt to: Empfangs-Adresse;
#sleep 2;
echo data;
#sleep 2;
echo subject: Testmail Script VM Telnet piped;
#sleep 2;
echo From: Absende-Adresse;
echo To: Empfangs-Adresse;
echo Subject: Testmail Script Telnet_piped VM;
echo Testmail Script Telnet_piped VM;
echo .;
#sleep 3;
echo quit;
#sleep 5;
echo exit
) | telnet mx01.t-online.de 25 >> protokoll_t-online.txt
Funktionieren bei allen getesteten Servern (mx01.t-online.de und mx00.kundenserver.de) bis Zeile 'telnet -a . . . 'befinden sich dann immer noch in Telnet-Shell haben aber offensichtlich probs mit den Zeilenumbrüchen
man kann die Telnet-Shell dann sogar noch manuell weiterverwenden.
Linux version 3.16.0-4-amd64 ([email protected]) (gcc version 4.8.4 (Debian 4.8.4-1) ) #1 SMP Debian 3.16.51-3 (2017-12-13)
telnet 0.17-36
Hat jemand eine Idee was falsch läuft?
MFG Noah's Raven