尝试运行sendmail时出现错误。我在OS X 10.8 Mountain Lion上。
sendmail: fatal: chdir /Library/Server/Mail/Data/spool: No such file or directory
尝试运行sendmail时出现错误。我在OS X 10.8 Mountain Lion上。
sendmail: fatal: chdir /Library/Server/Mail/Data/spool: No such file or directory
Answers:
只需在终端中执行
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
chown: /usr/share/man/man1/postalias.1.gz: No such file or directory
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用于其Mail服务的目录,该目录取决于Postfix,但与Postfix不同。/var/spool/postfix
另一方面,是 Postfix内部操作的首选目录( p。14 )。
有两个主要的配置文件引用这些目录:
/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,因为launchd可以监视目录中的外发邮件,并且仅在有发送内容时才运行Postfix。为确保发生这种情况,QueueDirectories
键入键org.postfix.master.plist
需要maildrop
在main.cf
的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
即时的调试反馈,但同样不必正常执行。启动将根据需要运行Postfix。(如果确定要始终运行Postfix,请使用手册页中KeepAlive
详细说明的密钥。)launchd.plist