Muss man einen Mailserver einrichten, bevor man den Linux- mail
Befehl verwenden kann?
Antwort1
Nein, Sie benötigen keinen Mailserver, um E-Mails zu senden. Ich bin am besten mit Sendmail vertraut und es gibt 3 Funktionsklassifikationen, die E-Mail als Dienst erfüllen. MDA (Mail Delivery Agents) ist 1, MTA (Mail Transfer Agents) ist 2 und 3 ist MUA (Mail User Agents).
Die Terminologie ist verwirrend, aber Sie benötigen keinen ständig laufenden MTA. Der MTA wird jedes Mal aufgerufen, wenn der MUA ( mail
) E-Mails „senden“ möchte.
Wenn Sie es ausführen mail
und eine Adresse angeben, an die E-Mails gesendet werden sollen, [email protected]
ruft der E-Mail-Client den MTA ( /usr/bin/sendmail
) auf, der dann DNS nach diesem Host/dieser Domäne (example.com) abfragt und herausfindet, welcher Wert für dessen MX-Eintrag angegeben ist. MX steht für Mail Exchanger.
Beispiel
Mit dem folgenden Befehl können Sie dig
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
Daher versucht der Client, eine Verbindung zu eggs.gnu.org über Port 25 herzustellen, um diese E-Mail zuzustellen.
DNS Server?
@puk hat folgende Folgefrage gestellt:
Befindet sich dieser DNS auf meinem lokalen Computer?
Worauf ich antwortete:
@puk – es kann auf die gleiche Weise sein wie der Mailserver, aber normalerweise ist es das nicht. Schauen Sie in Ihrer /etc/resolv.conf
Datei nach und wenn Sie den dig
Befehl ausführen, werden Sie die SERVER: ...
Zeile unten bemerken. Das ist der DNS-Server, der Ihre Anfrage bearbeitet.
Beispiel
Meine /etc/resolv.conf
Datei enthält Folgendes:
nameserver 192.168.1.8
Und Abfragen wie diese verwenden dig
:
$ dig gnu.org mx
Das Ergebnis ist unten:
;; 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 aufmerksamen Leser eine Frage: Wie wird das konfiguriert? Die Antwort ist die /etc/nsswitch.conf
Datei. Genauer gesagt diese Zeile:
hosts: files mdns4_minimal [NOTFOUND=return] dns
Das heißt, verwenden Sie zuerst Dateien ( /etc/hosts
), gefolgt von mdns4_minimal
. Das ist ein Multicast-DNS. Es ist im Grunde ein Cache früherer Suchvorgänge. Zuletzt wird verwendet, dns
was die IP-Adresse des nameserver
in der /etc/resolv.conf
Datei angegebenen ist.
Antwort2
Es hängt wirklich davon ab, welche Version mail
Sie verwenden.
Alle Versionen benötigen einen MTA, um die E-Mail tatsächlich zuzustellen, einige Versionen können jedoch über SMTP mit einem Remote-MTA (dem „Smarthost“, z. B. dem Mailserver Ihres Internetdienstanbieters) kommunizieren, und einige können die Nachricht nur weiterleiten, um /usr/sbin/sendmail
die E-Mail über einen lokalen MTA zu senden.
Im letzteren Fall könnte der lokale MTA ein vollwertiger MTA sein wiesendmailodereximoderPostfix. Oder es könnte ein einfacher Send-Only-MTA sein wieNullmaileroderssmtpOder ein etwas ausgefeilterer Mini-MTA wiemsmtpdas auch das Warteschlangen-Stellen von E-Mails für eine spätere Zustellung unterstützt.
In der Welt der freien Software und Open Source gibt es zwei Hauptvarianten des mailx
Pakets (das den mail
Befehl bereitstellt): bsd-mailx
, und heirloom-mailx
. Der mail
Befehl ist auch in GNU verfügbar mailutils
.
bsd-mailxspricht kein SMTP und kann E-Mails nur per Pipe an/usr/sbin/sendmail
Erbstück-Mailxkann SMTP mit einem Smarthost kommunizieren, ebenso wie die traditionelle 'Pipe-to-Sendmail'-Methode. Übrigens,Schneckeist wahrscheinlich das beste Derivat von heirloom-mailx – es wird immer noch aktiv weiterentwickelt und aktualisiert.
GNU Mailutilsenthält mehrere E-Mail-bezogene Tools für Endbenutzer und Systemadministratoren, darunter eine Version von mail
und vieles mehr.
Um also Ihre Frage zu beantworten: „Brauchen Sie einen Mailserver?“. Ja, in etwa. Sie brauchen einen, aber je nachdem, welche Version mail
Sie installiert haben, müssen Sie ihn möglicherweise nicht auf Ihrem eigenen System installieren und konfigurieren.
Meiner Meinung nach sind Sie mit mindestens einem minimalen MTA wie msmtp
(oder einem vollwertigen wie postfix
oder exim
) besser dran, als sich ausschließlich auf einen Smarthost mit zu verlassen, heirloom-mailx
da Sie E-Mails immer noch für die spätere Zustellung in die Warteschlange stellen müssen, wenn Ihre Internetverbindung unterbrochen ist oder Ihr Smarthost nicht erreichbar ist. Mit einer lokalen Warteschlange können mail
und crond
und andere Programme E-Mails einfach senden und vergessen. Ohne eine lokale Warteschlange müssen sie irgendwie mit dem Fehlerzustand umgehen, wenn der Smarthost nicht verfügbar ist.