Podczas próby uruchomienia sendmaila pojawia się błąd. Korzystam z systemu OS X 10.8 Mountain Lion.
sendmail: fatal: chdir /Library/Server/Mail/Data/spool: No such file or directory
Podczas próby uruchomienia sendmaila pojawia się błąd. Korzystam z systemu OS X 10.8 Mountain Lion.
sendmail: fatal: chdir /Library/Server/Mail/Data/spool: No such file or directory
Odpowiedzi:
Wystarczy wykonać w terminalu
sudo mkdir -p /Library/Server/Mail/Data/spool
sudo /usr/sbin/postfix set-permissions
sudo /usr/sbin/postfix start
To załatwiło sprawę.
Aby pozbyć się wszystkich ostrzeżeń, musiałem wykonać następujące czynności:
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 : Zmień queue_directoryzmienną /etc/postfix/main.cfna /var/spool/postfix.
Pełna odpowiedź:
mkdir -p Zbliżyć prawdopodobnych prace, ale podejrzewam, że istnieje prostsze rozwiązanie. Uczciwe ostrzeżenie, jestem nowy w Postfix i to wszystko może być niepoprawne.
Wygląda na to, że różne wersje systemu Mac OS X używają jednego z dwóch katalogów głównych dla poczty:
/var/spool/postfix/Library/Server/MailWydaje się, że z czasem ci dwaj zamęli się. (Uwaga /varjest w rzeczywistości dowiązaniem symbolicznym do /private/var, więc często widzisz te używane zamiennie).
Z tego, co mogę powiedzieć, /Library/Server/Mailjest katalog, którego Mac OS X Server używa do swoich usług pocztowych, które zależą od Postfix, ale nie są takie same. /var/spool/postfixz drugiej strony jest preferowanym katalogiem (s. 14) dla wewnętrznych operacji Postfix.
Istnieją dwa główne pliki konfiguracyjne, które odnoszą się do tych katalogów:
/etc/postfix/main.cf/System/Library/LaunchDaemons/org.postfix.master.plistPodejrzewam, że widzisz „Brak takiego błędu pliku lub katalogu”, ponieważ queue_directoryzmienna w Postfixie main.cfodnosi się do /Library/Server/Mail/Data/spool, która nie istnieje. W zwykłym systemie Mac OS X (w przeciwieństwie do serwera ) cały /Library/Serverkatalog nie istnieje. Zamiast go utworzyć, spróbuj poprawić queue_directoryzmienną /var/spool/postfix.
Drugim punktem niespójności są domyślne ustawienia uruchomionego menedżera demonów Mac OS X. Nie jest konieczne uruchamianie Postfix przez cały czas, ponieważ uruchomiony może oglądać katalog poczty wychodzącej i uruchamiać Postfix tylko wtedy, gdy jest coś do wysłania. Aby upewnić się, że będzie to się stało, QueueDirectorieskluczem do org.postfix.master.plistpotrzeb notować w maildroppodkatalogu katalogu w main.cf„s queue_directoryzmiennej. Na przykład zmieniłem org.postfix.master.plistplik, aby uwzględnić:
<key>QueueDirectories</key>
<array>
<string>/var/spool/postfix/maildrop</string>
</array>
Przy zgodności tych dwóch katalogów Postfix powinien zostać uruchomiony. Powinieneś być w stanie oglądać /var/log/mail.logpodczas biegu:
$ 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
Ostatnie z tych poleceń uruchamia Postfix, więc możesz uważać mail.logna natychmiastowe informacje debugowania, ale znowu nie jest konieczne wykonywanie go normalnie. Uruchomiony uruchomi Postfix w razie potrzeby. (Jeśli jesteś pewien, że chcesz, aby Postfix działał cały czas, użyj KeepAliveklucza opisanego na launchd.pliststronie podręcznika ).