Błąd Sendmaila w systemie OS X Mountain Lion

27

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
Jason Waldrip
źródło

Odpowiedzi:

35

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ę.

LevB
źródło
Dzięki próbowałem, poczta nie wychodzi i pojawia się następujący błąd: postdrop: ostrzeżenie: mail_queue_enter: utwórz plik maildrop / 609676.26828: Odmowa
Musiałem również wykonać uprawnienia do sudo / usr / sbin / postfix i teraz działa
Dzięki, działało to jak urok, mimo że rzucało dziwne błędy i ostrzeżenia.
Swader,
Śledziłem> sudo mkdir ... i to działa. Dzięki za rozwiązanie.
Abhinav Chittora,
23

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
Jasper N. Brouwer
źródło
1
Nie sądzę, aby skompresowanie stron podręcznika było konieczne.
nohillside
3
Spakowanie stron podręcznika jest konieczne, aby uniknąć tego ostrzeżenia podczas uruchamiania uprawnień:chown: /usr/share/man/man1/postalias.1.gz: No such file or directory
Andrew Ferrier,
To działało jak urok, po prostu wkleiłem to wszystko i dobrze idź do. Dzięki @Jasper!
adriandz
3

Rozwiązanie wydaje się również naprawiać błąd w wersji 10.8, gdy usługa faksowania przestała wysyłać wiadomości e-mail po aktualizacji 10.8.

Ben King
źródło
0

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/Mail

Wydaje 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.plist

Podejrzewam, ż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 ).

duozmo
źródło