Помилка Sendmail на OS X Mountain Lion


27

Я отримую помилку при спробі запуску sendmail. Я на OS X 10.8 Mountain Lion.

sendmail: fatal: chdir /Library/Server/Mail/Data/spool: No such file or directory

Відповіді:


35

Просто виконайте в терміналі

sudo mkdir -p /Library/Server/Mail/Data/spool
sudo /usr/sbin/postfix set-permissions
sudo /usr/sbin/postfix start

Це зробило для мене трюк.


Дякуємо, спробував це, пошта не виходила та отримала таку помилку: postdrop: попередження: mail_queue_enter: створити файл maildrop / 609676.26828: Дозвіл відхилено

Мені довелося також робити дозволи набору sudo / usr / sbin / postfix, і тепер це працює

Дякую купу, це спрацювало як шарм, хоча воно викинуло деякі дивні помилки та попередження.
Повзун

Я дотримувався> sudo mkdir ... і це працює. Дякую за рішення.
Абхінав Читтора

23

Щоб позбутися всіх попереджень, я повинен був зробити наступне:

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

1
Я не думаю, що збирати довідкові сторінки не потрібно.
nohillside

3
Зіставлення довідкових сторінок необхідно, щоб уникнути цього попередження під час запуску встановлених дозволів:chown: /usr/share/man/man1/postalias.1.gz: No such file or directory
Ендрю Фер'єр

Це спрацьовувало як шарм, просто вставте все це і добре йти. Дякую @Jasper!
adriandz

3

Здається, рішення також виправляє помилку в 10.8, коли служба факсу перестала надсилати електронні листи після оновлення 10.8.


0

TLDR : змініть queue_directoryзмінну /etc/postfix/main.cfна /var/spool/postfix.

Повна відповідь:

mkdir -p Підходити можливі роботи, але я підозрюю , що є більш просте рішення. Справедливе попередження, я новачок у Postfix, і це все може бути неправильно.

Здається, різні видання Mac OS X використовують один з двох кореневих каталогів для пошти:

  • /var/spool/postfix
  • /Library/Server/Mail

Ці два, здається, з часом заплуталися. (Примітка /var- це насправді символьне посилання на /private/var, тому ви часто бачите тих, що використовуються взаємозамінно.)

З того, що я можу сказати, /Library/Server/Mailце каталог, який Mac OS X Server використовує для своїх поштових служб, які залежать від Postfix, але вони не є такими ж. /var/spool/postfix, з іншого боку, є кращим каталогом (стор. 14) для внутрішніх операцій Postfix.

Є два основні файли конфігурації, на які посилаються ці каталоги:

  • /etc/postfix/main.cf
  • /System/Library/LaunchDaemons/org.postfix.master.plist

Ви бачите "Немає такого помилки у файлі чи каталозі", я підозрюю, оскільки queue_directoryзмінна в Postfix main.cfпосилається на /Library/Server/Mail/Data/spool, яка не існує. У звичайному Mac OS X ( на відміну від Server ) весь /Library/Serverкаталог не існує. Замість того, щоб створювати його, спробуйте виправити queue_directoryзмінну /var/spool/postfix.

Другий момент невідповідності - у налаштуваннях за замовчуванням для запуску, диспетчера демонів Mac OS X. Не потрібно весь час запускати Postfix, оскільки запускаючий може переглядати каталог для вихідної пошти та запускати Postfix лише тоді, коли є що надіслати. Щоб переконатися, що це станеться, QueueDirectoriesключ org.postfix.master.plistповинен перелічити maildropпідкаталог каталогу у змінній main.cf's queue_directory. Наприклад, я змінив свій org.postfix.master.plistфайл, щоб він включав:

<key>QueueDirectories</key>
<array>
        <string>/var/spool/postfix/maildrop</string>
</array>

Якщо ці два каталоги відповідають, Postfix повинен запускатися. Ви повинні мати можливість дивитися /var/log/mail.logпід час бігу:

$ 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

Остання з цих команд запускає Postfix, тому ви можете спостерігати mail.logза негайною відладкою зворотного зв’язку, але повторити її не потрібно в звичайній основі. Launchd запустить Postfix за потребою. (Якщо ви впевнені, що хочете, щоб Postfix працював увесь час, використовуйте KeepAliveключ, детальний на launchd.plistсторінці man .)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.