OS X Mountain Lion上的Sendmail错误


Answers:


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 2012年

我遵循> sudo mkdir ...,它可以工作。感谢您的解决方案。
Abhinav Chittora 2012年

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
Andrew Ferrier 2012年

这就像一种魅力,只是将其全部粘贴并很好地使用。谢谢@贾斯珀!
adriandz 2012年

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/MailMac OS X Server用于其Mail服务的目录,该目录取决于Postfix,但与Postfix不同。/var/spool/postfix另一方面,是 Postfix内部操作的首选目录( p。14

有两个主要的配置文件引用这些目录:

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

我怀疑您看到的是“没有这样的文件或目录错误”,因为queue_directoryPostfix的变量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需要maildropmain.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即时的调试反馈,但同样不必正常执行。启动将根据需要运行Postfix。(如果确定要始终运行Postfix,请使用手册页中KeepAlive详细说明的密钥。)launchd.plist

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.