
Ich frage mich, wie Systemdaemons auf einem lokalen Linux-Host E-Mails versenden.
- Gibt es bereits eine Art integriertes E-Mail-Framework?
- Benötige ich einen MTA oder einen MUA?
- Welche Rolle spielt „Sendmail“ und ist es eine Voraussetzung?
- Wie konfiguriere ich den Server, um über einen anderen Host senden zu können?
- Wie passt der Befehl „mail“ hier hinein?
- Wie passt /home/user/maildir ins Bild?
Antwort1
Sie haben eine ziemlich weit gefasste Frage gestellt. Sie im Detail zu erklären würde viele Seiten in Anspruch nehmen. Kurz gesagt:
Beim Versenden von E-Mails auf einem Linux-/Unix-Rechner sind mehrere Programme beteiligt. Für jede Rolle stehen viele zur Auswahl:
- Mail User Agent (MUA). Damit lesen und verfassen Sie E-Mails. Es ist die Benutzeroberfläche des Systems. Beispiele: mutt, Thunderbird, Evolution, kmail, ...
- Mail Delivery Agent (MDA). Dieser kümmert sich um das Einlegen von E-Mails in lokale Postfächer. Kann auch Filter usw. handhaben. Beispiele: procmail, maildrop.
- Mail Transfer Agent (MTA). Dieser verwaltet das Senden und Empfangen von E-Mails zwischen Systemen, normalerweise über das Internet mit SMTP. Beispiele sind exim, postfix, qmail, sendmail usw.
MTA und MDA werden häufig kombiniert. Beispielsweise kann exim beides (obwohl es auch mit einem separaten MDA ausgeführt werden kann). Und einige MUAs (z. B. Thunderbird) verarbeiten alle drei (allerdings mit sehr eingeschränkter MTA-Funktionalität).
Zum Senden von E-Mails stehen zwei Schnittstellen zur Verfügung:
- Stellen Sie eine SMTP-Verbindung zu localhost:25 her und sprechen Sie SMTP, um eine Nachricht zu senden.
- Rufen Sie auf
/usr/sbin/sendmail
und leiten Sie eine Nachricht dorthin weiter. (Oder sprechen Sie SMTP über die Pipe. Es gibt eine Reihe von Argumenten. Sehen Sie bei Interesse auf der Manpage nach.)
(2) ist ziemlich verbreitet. Beachten Sie, dass dies die native Schnittstelle zum Sendmail-MTA ist, aber so ziemlich jeder andere Unix-MTA emuliert die Schnittstelle – es ist mehr oder weniger die Standardmethode zum Senden von E-Mails auf einer Unix-Box.
Wenn Sie also eine Nachricht eingeben, wird aufgerufen , um diese Nachricht an den System-MTA weiterzuleiten. Der System-MTA verwendet dann seine lokale Konfiguration, um zu bestimmen, was mit der Nachricht geschehen soll:mail [email protected]
mail
/usr/sbin/sendmail
- Die E-Mails werden an den lokalen E-Mail-Namen/Hostnamen gesendet, daher erfolgt eine lokale Zustellung (Weiterleitung an den MDA).
- Machen Sie eine DNS-Anfrage für die MX-Einträge, führen Sie eine Remote-SMTP-Übermittlung durch
- Benutzerdefinierte Aktion für diese Domain/E-Mail-Adresse/was auch immer konfiguriert. MTAs sind in der Regelsehrflexibel.
Wie passt /var/spool/mail/user
oder ~/Maildir
passt das hier hinein? Das ist einfach der Ort, an dem der MDA die von ihm zugestellten E-Mails ablegt (oder standardmäßig ablegt).
Für Ihre RAID-Überwachung müssen SiewahrscheinlichSie möchten, dass ein MTA installiert ist. Wenn Sie die E-Mail an Ihr Gmail-Konto oder ein anderes Konto senden, benötigen Sie keinen MDA.
Die einfachste Einrichtung wäre, wenn Sie einen ISP haben, der ein ausgehendes SMTP-Relay (auch bekannt als Smarthost; die meisten tun das) bereitstellt. Dann müssen Sie nur noch einen MTA einrichten, der alle E-Mails dorthin sendet. Ubuntu hatDokumentation zur E-Mail-EinrichtungDort wird erwähnt, dass Exim bereits installiert sein sollte, Sie es aber konfigurieren müssen, um E-Mails von Ihrem System abzurufen (was ziemlich einfach ist). Siehe auch "Leichtgewichtiger SMTP-Server für ausgehende Posten" hier auf Unix.SE.
Antwort2
Gibt es bereits eine Art integriertes E-Mail-Framework?
Ja. Für die meisten Distributionen gibt es mehrere Optionen. Sie können MTAs wie Postfix und Sendmail auf den meisten größeren Distributionen wie Debian, Ubuntu, Fedora, CentOS usw. verwenden. Es hängt wirklich von Ihren Präferenzen ab.
Benötige ich einen MTA oder einen MUA?
Kommt drauf an. Die meisten Linux-Distributionen haben einen MTA und dieser dient normalerweise dazu, dass systemgenerierte E-Mails von verschiedenen Crons und Daemons, die auf dem System laufen, zugestellt werden können. In diesen Fällen ist der MTA normalerweise so konfiguriert, dass die E-Mail nur lokal an Root- oder Administratorkonten auf dem System zugestellt wird.
Was MUAs betrifft, gibt es eine riesige Auswahl. Sie reicht von terminalbasierten Apps wie Mail und Mutt bis hin zu Evolution und Thunderbird.
Wie konfiguriere ich den Server, damit er über einen anderen Host senden kann? Ich beschäftige mich nicht mit E-Mails zwischen lokalen Benutzern auf der Box (bisher gibt es nur 2, mein Konto und Root), aber ich bin auch neugierig, wie das funktioniert.
Wenn Sie einen MTA wie Sendmail verwenden, können Sie die Box normalerweise als intelligenten Weiterleitungshost konfigurieren, sodass sie alle E-Mails, die sie nicht lokal an ein Root- oder Administratorkonto zustellen kann, einfach blind an einen bestimmten Host weiterleitet, der die Zustellung der von diesem Host stammenden E-Mails übernimmt.
Wie passt der Befehl „mail“ hier hinein?
Dies ist nur ein MUA.
Wie passt /home/user/maildir ins Bild?
In diesem Verzeichnis werden normalerweise nur die E-Mails der lokalen Konten des Hosts abgelegt, die E-Mails empfangen haben. Die hier angezeigten E-Mails werden normalerweise vom lokal konfigurierten MTA zugestellt.
Ist das etwas, das von Unix übernommen wurde?
Ich weiß nicht genau, wie ich diese Frage beantworten soll.
Wenn Sie nach dem offensichtlichen Unterschied zwischen beispielsweise einem PC fragen, der normalerweise keine MTA/MUA-Anwendungen auf seiner Box hat, und einer Unix-Box, auf der dies normalerweise der Fall ist.
Dann würde ich folgendes sagen:
Es hat mehr mit den Anwendungstypen zu tun, die Unix-Boxen füllen würden, im Gegensatz zu denen eines PCs. Es war im Allgemeinen die Norm, dass die meisten Unix-Boxen als Server verwendet wurden, und Server müssen E-Mails von einer Vielzahl von Daemons und Diensten zustellen, die auf ihnen laufen. Diese Dienste hatten normalerweise kein zugeordnetes Benutzerkonto, sodass ein MTA erforderlich war, um System-E-Mails aus der Box an den Rest der Welt zu senden.
Ich finde es meiner Meinung nach jedoch ungewöhnlich, dass ein PC nicht über diese Art von Funktionalität verfügt, aber das ist nur meine Meinung 8-).
Antwort3
Überhaupt keine... alle Mail-bezogenen Pakete/Funktionen können weggelassen werden. Alle Distributionen, die ich kenne, bieten eine Vielzahl von MTAs, MUAs, Handlern für Mail-Speicher (POP-, IMAP-Server), Spam-Filter/-Maßnahmen, ...