Ошибка 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

Это помогло мне.

LevB
источник
Спасибо, пробовал, почта не отправлялась и получала следующую ошибку: postdrop: предупреждение: mail_queue_enter: создать файл maildrop / 609676.26828: В доступе отказано
Я должен был также сделать sudo / usr / sbin / postfix set-permissions, и теперь это работает
Огромное спасибо, это сработало как шарм, несмотря на то, что выбрасывало странные ошибки и предупреждения.
Swader
Я последовал> 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
Я не думаю, что архивирование страниц руководства необходимо.
холме
3
Чтобы избежать этого предупреждения при запуске set-permissions, необходимо сжать справочные страницы: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 (в отличие от сервера ), весь /Library/Serverкаталог не существует. Вместо того, чтобы создавать его, попробуйте исправить queue_directoryпеременную /var/spool/postfix.

Вторая точка несоответствия - настройки по умолчанию для launchd, диспетчера демонов в Mac OS X. Нет необходимости запускать Postfix все время, так как launchd может просматривать каталог для исходящей почты и запускать 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странице руководства .)

duozmo
источник