Ошибка 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 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странице руководства .)

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.