OS X Mountain Lion에서 Sendmail 오류 오류가 발생합니다. OS X

sendmail을 실행하려고 할 때 오류가 발생합니다. OS X 10.8 Mountain Lion을 사용하고 있습니다.

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



답변

그냥 터미널에서 실행

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

그것은 나를 위해 속임수를했다.


답변

모든 경고를 없애려면 다음을 수행해야했습니다.

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


답변

이 솔루션은 10.8 업그레이드 후 팩스 서비스에서 이메일 전송을 중지 한 10.8의 오류도 수정 한 것으로 보입니다.


답변

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이므로 종종 서로 교환하여 사용되는 것을 볼 수 있습니다.

내가 알 수 있듯이 Mac OS X Server 가 Mail 서비스에 사용 /Library/Server/Mail하는 디렉토리는 Postfix에 의존하지만 Postfix와 동일하지는 않습니다. 반면, Postfix의 내부 작업에 선호되는 디렉토리 (페이지. 14) 입니다./var/spool/postfix

이 디렉토리를 참조하는 두 가지 주요 구성 파일이 있습니다.

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

때문에, 나는 의심 “그런 파일 또는 디렉터리 오류”를보고하지있어 queue_directory후위의의 변수 main.cf에 의미 /Library/Server/Mail/Data/spool가 존재하지 않는다. 일반 Mac OS X ( Server와 달리 )에는 전체 /Library/Server디렉토리가 존재하지 않습니다. queue_directory변수를 작성하는 대신 변수를로 수정하십시오 /var/spool/postfix.

불일치의 두 번째 지점은 Mac OS X의 데몬 관리자 인 기본 설정에 있습니다. Launchd는 보내는 메일 의 디렉토리 수 있고 보낼 것이있을 때만 Postfix를 실행할 수 있기 때문에 Postfix를 항상 실행할 필요는 없습니다 . 반드시이 일이 일어날 수 있도록하기 위해, QueueDirectories핵심 org.postfix.master.plist요구 사항 목록에 maildrop있는 디렉토리의 하위 디렉토리 main.cfqueue_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하십시오 .


답변