Benötigt der Mail-Befehl einen Mail-Server?

16

Muss man einen Mail-Server einrichten, bevor man den Linux- mailBefehl verwenden kann?

puk
quelle
@ SLM nicht wirklich das gleiche wie diese Frage deutet darauf hin, dass man einen SMTP-Server benötigt, um E-Mails auszuführen, aber ich frage, ob es absolut notwendig ist
puk
1
Ja, es ist ein mögliches Duplikat. Ich habe dir b / c geantwortet, dass Q es ein bisschen zu spezifisch nimmt.
Fühlt sich

Antworten:

14

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 mailund 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 digBefehl 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.

DNS Server?

@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.confDatei und auch wenn Sie den digBefehl ausführen, werden Sie die SERVER: ...Zeile am unteren Rand bemerken . Das ist der DNS-Server, der Ihre Anfrage bearbeitet.

Beispiel

Meine /etc/resolv.confDatei 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.confAkte. 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, dnswelche IP-Adresse nameserverin der /etc/resolv.confDatei angegeben ist.

slm
quelle
Befindet sich dieser DNS auf meinem lokalen Computer?
Puk
@puk - siehe Updates.
slm
@puk - Ich habe mehr hinzugefügt ....
slm
7

Es hängt wirklich davon ab, welche Version von mailIhnen 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/sendmailzu 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 mailxPakets (die den mailBefehl bereitstellen ): bsd-mailxund 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, msmtpals sich nur auf einen Smarthost zu verlassen, heirloom-mailxda 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, mailund crondund 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.

cas
quelle