Muss man einen Mail-Server einrichten, bevor man den Linux- mail
Befehl verwenden kann?
Muss man einen Mail-Server einrichten, bevor man den Linux- mail
Befehl verwenden kann?
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, sam@example.com
. 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.
Mit dem dig
Befehl können Sie Folgendes anzeigen :
$ dig gnu.org mx
; <<>> DiG 9.7.4-P1-RedHat-9.7.4-2.P1.fc14 <<>> gnu.org mx
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 21053
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 2
;; QUESTION SECTION:
;gnu.org. IN MX
;; ANSWER SECTION:
gnu.org. 299 IN MX 10 eggs.gnu.org.
;; ADDITIONAL SECTION:
eggs.gnu.org. 299 IN A 208.118.235.92
eggs.gnu.org. 299 IN AAAA 2001:4830:134:3::10
;; Query time: 218 msec
;; SERVER: 192.168.1.8#53(192.168.1.8)
;; WHEN: Thu Oct 3 17:27:22 2013
;; MSG SIZE rcvd: 90
Der Client versucht daher, über Port 25 eine Verbindung zu eggs.gnu.org herzustellen, um diese E-Mail zuzustellen.
@puk hat folgende Anschlussfrage gestellt:
Befindet sich dieser DNS auf meinem lokalen Computer?
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 den dig
Befehl ausführen, werden Sie die SERVER: ...
Zeile am unteren Rand bemerken . Das ist der DNS-Server, der Ihre Anfrage bearbeitet.
Meine /etc/resolv.conf
Datei enthält Folgendes:
nameserver 192.168.1.8
Und Fragen wie diese mit dig
:
$ dig gnu.org mx
Ergebnis im unteren Bereich:
;; Query time: 259 msec
;; SERVER: 192.168.1.8#53(192.168.1.8)
;; WHEN: Thu Oct 3 17:46:13 2013
;; MSG SIZE rcvd: 90
Und für den scharfsinnigen Leser ist meine Frage, wie das konfiguriert ist? Die Antwort ist die /etc/nsswitch.conf
Akte. Speziell diese Zeile:
hosts: files mdns4_minimal [NOTFOUND=return] dns
Das heißt, zuerst Dateien verwenden ( /etc/hosts
), gefolgt von mdns4_minimal
. Das ist ein Multicast-DNS. Es ist im Grunde ein Cache früherer Lookups. Zuletzt wird verwendet, dns
welche IP-Adresse nameserver
in der /etc/resolv.conf
Datei angegeben ist.
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 den mail
Befehl bereitstellen ): bsd-mailx
und heirloom-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
und crond
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.