Beim Ausführen von sendmail wird eine Fehlermeldung angezeigt. Ich bin auf OS X 10.8 Mountain Lion.
sendmail: fatal: chdir /Library/Server/Mail/Data/spool: No such file or directory
Beim Ausführen von sendmail wird eine Fehlermeldung angezeigt. Ich bin auf OS X 10.8 Mountain Lion.
sendmail: fatal: chdir /Library/Server/Mail/Data/spool: No such file or directory
Antworten:
Einfach im Terminal ausführen
sudo mkdir -p /Library/Server/Mail/Data/spool
sudo /usr/sbin/postfix set-permissions
sudo /usr/sbin/postfix start
Das hat den Trick für mich getan.
Um alle Warnungen loszuwerden, musste ich Folgendes tun:
sudo mkdir -p /Library/Server/Mail/Data/spool
sudo gzip /usr/share/man/man1/{postalias.1,postcat.1,postconf.1,postdrop.1,postfix.1,postkick.1,postlock.1,postlog.1,postmap.1,postmulti.1,postqueue.1,postsuper.1,sendmail.1}
sudo gzip /usr/share/man/man5/{access.5,aliases.5,bounce.5,canonical.5,cidr_table.5,generic.5,header_checks.5,ldap_table.5,master.5,mysql_table.5,nisplus_table.5,pcre_table.5,pgsql_table.5,postconf.5,postfix-wrapper.5,regexp_table.5,relocated.5,tcp_table.5,transport.5,virtual.5}
sudo gzip /usr/share/man/man8/{anvil.8,bounce.8,cleanup.8,discard.8,error.8,flush.8,local.8,master.8,oqmgr.8,pickup.8,pipe.8,proxymap.8,qmgr.8,qmqpd.8,scache.8,showq.8,smtp.8,smtpd.8,spawn.8,tlsmgr.8,trivial-rewrite.8,verify.8,virtual.8}
sudo /usr/sbin/postfix set-permissions
sudo chmod 700 /Library/Server/Mail/Data/mta
sudo /usr/sbin/postfix start
chown: /usr/share/man/man1/postalias.1.gz: No such file or directory
TLDR : Ändern Sie die queue_directory
Variable in /etc/postfix/main.cf
in /var/spool/postfix
.
Vollständige Antwort:
Der mkdir -p
Ansatz funktioniert wahrscheinlich, aber ich vermute, es gibt eine einfachere Lösung. Faire Warnung, ich bin neu in Postfix, und dies kann alles falsch sein.
Es scheint, dass verschiedene Editionen von Mac OS X eines von zwei Stammverzeichnissen für E-Mails verwenden:
/var/spool/postfix
/Library/Server/Mail
Diese beiden scheinen im Laufe der Zeit durcheinander gekommen zu sein. (Hinweis /var
ist eigentlich ein Symlink zu /private/var
, daher werden diese häufig synonym verwendet.)
Was ich sagen kann, /Library/Server/Mail
ist ein Verzeichnis, das Mac OS X Server für seine Mail-Dienste verwendet, die von Postfix abhängen, aber nicht mit Postfix identisch sind. /var/spool/postfix
Andererseits ist es das bevorzugte Verzeichnis (S. 14) für die internen Operationen von Postfix.
Es gibt zwei Hauptkonfigurationsdateien, die auf diese Verzeichnisse verweisen:
/etc/postfix/main.cf
/System/Library/LaunchDaemons/org.postfix.master.plist
Ich vermute, es wird der Fehler "Keine solchen Dateien oder Verzeichnisse" angezeigt, da die queue_directory
Variable in Postfix auf main.cf
verweist /Library/Server/Mail/Data/spool
, die nicht vorhanden ist. Unter normalen Mac OS X-Betriebssystemen (im Gegensatz zu Server ) ist nicht das gesamte /Library/Server
Verzeichnis vorhanden. Statt es zu schaffen, versuchen Sie die Korrektur queue_directory
variabel zu sein /var/spool/postfix
.
Ein zweiter Inkonsistenzpunkt sind die Standardeinstellungen für launchd, den Daemon-Manager von Mac OS X. Es ist nicht erforderlich, Postfix ständig auszuführen, da launchd ein Verzeichnis auf ausgehende E-Mails überwachen und Postfix nur ausführen kann, wenn etwas zu senden ist. Um dies zu gewährleisten, muss mit der QueueDirectories
Tastatureingabe org.postfix.master.plist
das maildrop
Unterverzeichnis des Verzeichnisses in main.cf
der queue_directory
Variablen aufgeführt werden. Zum Beispiel habe ich meine org.postfix.master.plist
Datei so geändert, dass sie Folgendes enthält:
<key>QueueDirectories</key>
<array>
<string>/var/spool/postfix/maildrop</string>
</array>
Wenn diese beiden Verzeichnisse konsistent sind, sollte Postfix gestartet werden. Sie sollten in der Lage sein zu sehen, /var/log/mail.log
während Sie laufen:
$ sudo launchctl unload /System/Library/LaunchDaemons/org.postfix.master.plist
$ sudo launchctl load /System/Library/LaunchDaemons/org.postfix.master.plist
$ sudo launchctl start org.postfix.master
Der letzte dieser Befehle startet Postfix, so dass Sie mail.log
sofort auf Debugging-Rückmeldungen achten können, aber es ist nicht erforderlich, ihn normal auszuführen. Launchd führt Postfix nach Bedarf aus. (Wenn Sie sicher sind, dass Postfix die ganze Zeit ausgeführt werden soll, verwenden Sie den KeepAlive
in der launchd.plist
Manpage angegebenen Schlüssel .)