Muss man einen Mail-Server einrichten, bevor man den Linux- mail
Befehl verwenden kann?
mail-command
puk
quelle
quelle
Antworten:
Nein, Sie benötigen keinen Mailserver, um E-Mails zu senden. Ich kenne mich am besten mit Sendmail aus und es gibt drei Klassifikationen von Funktionen, die E-Mails als Service erfüllen. MDA (Mail Delivery Agents) ist 1 und MTA (Mail Transfer Agents) ist 2 und 3 ist MUA (Mail User Agents).
Die Terminologie wird verwirrend, aber Sie müssen nicht immer einen MTA ausführen. Der MTA wird jedes Mal aufgerufen, wenn der MUA (
mail
) E-Mails "senden" möchte.Beim Ausführen
mail
und geben Sie eine Adresse Mail an senden,[email protected]
. Der Mail-Client ruft den MTA (/usr/bin/sendmail
) auf, der dann DNS für diesen Host / diese Domain abfragt (example.com) und herausfindet, welcher Wert für seinen MX-Eintrag festgelegt ist. MX steht für Mail Exchanger.Beispiel
Mit dem
dig
Befehl können Sie Folgendes anzeigen :Der Client versucht daher, über Port 25 eine Verbindung zu eggs.gnu.org herzustellen, um diese E-Mail zuzustellen.
DNS Server?
@puk hat folgende Anschlussfrage gestellt:
Darauf habe ich geantwortet:
@puk - Es kann genauso sein wie der Mail-Server, ist es aber normalerweise nicht. Schauen Sie in Ihre
/etc/resolv.conf
Datei und auch wenn Sie dendig
Befehl ausführen, werden Sie dieSERVER: ...
Zeile am unteren Rand bemerken . Das ist der DNS-Server, der Ihre Anfrage bearbeitet.Beispiel
Meine
/etc/resolv.conf
Datei enthält Folgendes:Und Fragen wie diese mit
dig
:Ergebnis im unteren Bereich:
Und für den scharfsinnigen Leser ist meine Frage, wie das konfiguriert ist? Die Antwort ist die
/etc/nsswitch.conf
Akte. Speziell diese Zeile:Das heißt, zuerst Dateien verwenden (
/etc/hosts
), gefolgt vonmdns4_minimal
. Das ist ein Multicast-DNS. Es ist im Grunde ein Cache früherer Lookups. Zuletzt wird verwendet,dns
welche IP-Adressenameserver
in der/etc/resolv.conf
Datei angegeben ist.quelle
Es hängt wirklich davon ab, welche Version von
mail
Ihnen verwendet wird.Alle Versionen benötigen einen MTA, um die E-Mail tatsächlich zuzustellen, aber einige Versionen können SMTP verwenden, um mit einem Remote-MTA (dem "Smarthost", z. B. dem E-Mail-Server Ihres ISP)
/usr/sbin/sendmail
zu kommunizieren, und einige können die Nachricht nur weiterleiten, um die E-Mail zu senden ein lokaler MTA.Im letzteren Fall kann der lokale MTA ein vollwertiger MTA wie sendmail oder exim oder postfix sein . Oder es könnte sich um einen einfachen Nur-Send-MTA wie nullmailer oder ssmtp handeln . Oder ein etwas ausgefeilterer Mini-MTA wie msmtp , der auch das Einreihen von E-Mails in die Warteschlange für die spätere Zustellung unterstützt.
In der Welt der Freien Software & Open Source gibt es zwei Hauptvarianten des
mailx
Pakets (die denmail
Befehl bereitstellen ):bsd-mailx
undheirloom-mailx
.bsd-mailx spricht kein SMTP und kann E-Mails nur per Piping senden
/usr/sbin/sendmail
hierloom-mailx kann sowohl SMTP mit einem Smarthost als auch mit der herkömmlichen "Pipe-to-Sendmail" -Methode sprechen.
Beantworten Sie also Ihre Frage "Benötigen Sie einen Mailserver?". Mehr oder weniger. Sie benötigen eine, müssen diese jedoch je nach installierter Mail-Version möglicherweise nicht auf Ihrem eigenen System installieren und konfigurieren.
IMO, Sie sind mit einem minimalen MTA besser dran,
msmtp
als sich nur auf einen Smarthost zu verlassen,heirloom-mailx
da Sie weiterhin E-Mails für eine spätere Zustellung in die Warteschlange stellen müssen, wenn Ihre Internetverbindung unterbrochen oder Ihr Smarthost nicht erreichbar ist. Mit einer lokalen Warteschlange,mail
undcrond
und andere Programme können nur senden und vergessen jede Mail. Ohne lokale Warteschlange müssen sie die Fehlerbedingung irgendwie lösen, wenn der Smarthost nicht verfügbar ist.quelle