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.com
und eine E-Mail problemlos empfangen. Cool. Ich kann auch die PHP- mail()
Funktion zum Versenden von E-Mails verwenden. sendmail_path
Die 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 mail
Terminal-Befehl, wenn Postfix nicht läuft? Gibt es einen anderen Mail-Daemon, auf dem OS X läuft?
Es verwendet Postfix. mail
Wenn Sie den Befehl ausführen, geschieht auf hoher Ebene Folgendes:
mail
wird Ihre Nachricht als Datei im Postfix-Maildrop-Verzeichnis abgelegt, dh /var/spool/postfix/maildrop
. Dies geschieht, weil mail
Aufrufe sendmail
, die aufruft postdrop
, die die Datei in den Maildrop stellen.master
ist 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
.master
Daemon startet andere benötigte Postfix-Prozesse wie pickup
, qmgr
und smtp
um die Mail zuzustellen.Der postqueue -p
Befehl benötigt den showq-Daemon, der nur gestartet wird, wenn master läuft. Wenn dies nicht der Fall ist, sehen Sie diesen Fehler. Der showq
Daemon kann so konfiguriert werden, dass er immer läuft, damit Sie den postqueue -p
Befehl 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 execsnoop
Befehl 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
zick
mail
Befehl verwenden, und wird kurz darauf heruntergefahren. Versuchenmail
Sie etwas und beachten Sie, dass Sie Postfix auf Port 25 für eine Weile danach erreichen können, aber nicht später.Zwieback
Zwieback