Welcher Mail-Daemon läuft standardmäßig unter OS X 10.8.4?

Ich debugge einige E-Mail-bezogene Dinge auf meinem Mac und bin mir nicht ganz sicher, wie mein System überhaupt E-Mails sendet.

Ich kann einen einfachen Befehl wie ausführen date | mail -s test myemail@mydomain.comund eine E-Mail problemlos empfangen. Cool. Ich kann auch die PHP- mail()Funktion zum Versenden von E-Mails verwenden. sendmail_pathDie Konfigurationsvariable von PHP ist /usr/sbin/sendmail -t -i, sieht gut aus.

Aber das Seltsame ist, ich glaube nicht, dass Postfix überhaupt läuft ...

$ postqueue -p
postqueue: fatal: Queue report unavailable - mail system is down
$ ps -aef | grep -i postfix
  501 28403 25525   0  2:10PM ttys042    0:00.00 grep -i postfix
$ launchctl list | grep -i mail
-   0   com.apple.MailMigratorService
70829   -   0x7fa87941a060.anonymous.Mail
$ launchctl list | grep -i postfix
-   0   org.postfix.master

Wie sendet mein Mac überhaupt E-Mails vom mailTerminal-Befehl, wenn Postfix nicht läuft? Gibt es einen anderen Mail-Daemon, auf dem OS X läuft?

Ich kenne die Details nicht, aber Postfix erscheint, wenn Sie den mailBefehl verwenden, und wird kurz darauf heruntergefahren. Versuchen mailSie etwas und beachten Sie, dass Sie Postfix auf Port 25 für eine Weile danach erreichen können, aber nicht später.
Postfix ist die Voreinstellung! Es ist mit osx vorinstalliert.
Versuchen Sie es mit sudo /bin/launchctl unload -w /System/Library/LaunchDaemons/org.postfix.master.plist zu deaktivieren

Antworten (1)

Es verwendet Postfix. mailWenn Sie den Befehl ausführen, geschieht auf hoher Ebene Folgendes:

  • Beim Aufrufen mailwird Ihre Nachricht als Datei im Postfix-Maildrop-Verzeichnis abgelegt, dh /var/spool/postfix/maildrop. Dies geschieht, weil mailAufrufe sendmail, die aufruft postdrop, die die Datei in den Maildrop stellen.
  • Der Postfix-Hauptdämon masterist so konfiguriert, dass er gestartet wird, wenn der Maildrop Dateien enthält. Dies ist in der Datei angegeben /System/Library/LaunchDaemons/org.postfix.master.plist.
  • Der masterDaemon startet andere benötigte Postfix-Prozesse wie pickup, qmgrund smtpum die Mail zuzustellen.
  • Alle diese Prozesse, einschließlich des Master-Daemons, sterben, nachdem sie für einen bestimmten Zeitraum im Leerlauf waren.

Der postqueue -pBefehl benötigt den showq-Daemon, der nur gestartet wird, wenn master läuft. Wenn dies nicht der Fall ist, sehen Sie diesen Fehler. Der showqDaemon kann so konfiguriert werden, dass er immer läuft, damit Sie den postqueue -pBefehl verwenden können. Wenn Sie nur die Mail-Warteschlange sehen möchten, können Sie Folgendes tun:

$ sudo postfix start && postqueue -p && sudo postfix stop

Beachten Sie jedoch, dass Sie es auch beenden müssen, wenn Sie es auf diese Weise starten. Andernfalls ist der Postfix-Master-Daemon resident und nicht mehr auf Abruf verfügbar.

Wenn Sie wissen möchten, welche Prozesse gestartet werden, nachdem Sie ausgegeben haben mail, können Sie den execsnoopBefehl verwenden, um zu sehen, welche Prozesse gestartet werden:

$ sudo execsnoop -v
STRTIME                UID    PID   PPID ARGS
2016 Apr 20 23:57:52   501   2358   1154 mail
2016 Apr 20 23:57:52   501   2359   2357 date
2016 Apr 20 23:57:52   501   2360      1 sendmail
2016 Apr 20 23:57:52   501   2367   2360 postdrop
2016 Apr 20 23:57:52     0   2369   2343 cleanup
2016 Apr 20 23:58:23     0   2384      1 master
2016 Apr 20 23:58:23     0   2385   2384 pickup
2016 Apr 20 23:58:23     0   2386   2384 qmgr
2016 Apr 20 23:58:24     0   2387   2384 bounce
2016 Apr 20 23:58:24     0   2388   2384 trivial-rewrite
2016 Apr 20 23:58:24     0   2389   2384 local
2016 Apr 20 23:58:24     0   2390   2384 smtp