Sendmail-Fehler unter OS X Mountain Lion

27

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
Jason Waldrip
quelle

Antworten:

35

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.

LevB
quelle
Vielen Dank, dass Mail nicht ausgeht und die folgende Fehlermeldung angezeigt wird: postdrop: warning: mail_queue_enter: Datei erstellen maildrop / 609676.26828: Berechtigung verweigert
Ich musste auch sudo / usr / sbin / postfix set-permissions
Vielen Dank, dies funktionierte wie ein Zauber, obwohl es einige seltsame Fehler und Warnungen hervorbrachte.
Swader
Ich bin> sudo mkdir gefolgt ... und es funktioniert. Danke für die Lösung.
Abhinav Chittora
23

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
Jasper N. Brouwer
quelle
1
Ich denke nicht, dass es notwendig ist, die Manpages zu zippen.
Nohillside
3
Das Komprimieren der Manpages ist erforderlich, um diese Warnung zu vermeiden, wenn Set-Berechtigungen ausgeführt werden:chown: /usr/share/man/man1/postalias.1.gz: No such file or directory
Andrew Ferrier,
Das hat wie ein Zauber gewirkt, einfach alles eingeklebt und gut gemacht. Vielen Dank an Jasper!
Adriandz
3

Die Lösung scheint auch einen Fehler in 10.8 zu beheben, bei dem der Faxdienst das Senden von E-Mails nach dem Upgrade auf 10.8 eingestellt hat.

Ben King
quelle
0

TLDR : Ändern Sie die queue_directoryVariable in /etc/postfix/main.cfin /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 /varist eigentlich ein Symlink zu /private/var, daher werden diese häufig synonym verwendet.)

Was ich sagen kann, /Library/Server/Mailist 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/postfixAndererseits 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_directoryVariable in Postfix auf main.cfverweist /Library/Server/Mail/Data/spool, die nicht vorhanden ist. Unter normalen Mac OS X-Betriebssystemen (im Gegensatz zu Server ) ist nicht das gesamte /Library/ServerVerzeichnis vorhanden. Statt es zu schaffen, versuchen Sie die Korrektur queue_directoryvariabel 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 QueueDirectoriesTastatureingabe org.postfix.master.plistdas maildropUnterverzeichnis des Verzeichnisses in main.cfder queue_directoryVariablen aufgeführt werden. Zum Beispiel habe ich meine org.postfix.master.plistDatei 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.logwä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.logsofort 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 KeepAlivein der launchd.plistManpage angegebenen Schlüssel .)

duozmo
quelle