我注意到我的日志中 Postfix 无法向本地帐户发送电子邮件。
postfix/local[12775]: warning: maildir access problem for UID/GID=33/33: create maildir file /var/www/Maildir/tmp/1492097290.P12775.FQDN: Permission denied
postfix/local[12775]: warning: perhaps you need to create the maildirs in advance
postfix/local[12775]: 56ABC81A28: to=<www-data@FQDN>, relay=local, delay=0.02, delays=0/0.01/0/0.01, dsn=5.2.0, status=bounced (maildir delivery failed: create maildir file /var/www/Maildir/tmp/1492097290.P12775.FQDN: Permission denied)
postfix/qmgr[8037]: 56ABC81A28: removed
我已经配置了虚拟域,并且它们工作正常。我能够成功地将电子邮件从一个帐户发送到另一个帐户。
如何将 Postfix 的本地传送选项更改为除/var/www/
?之外的其他目录。
答案1
这可能是由以下情况造成的:
- 您已设置
home_mailbox = Maildir/
,它是相对于本地(8)用户主目录的邮箱文件的可选路径名。(默认值是empty
导致传递到/var/mail/user
。) - 用户
www-data
有主目录/var/www
,导致交付到/var/www/Maildir/
/var/www
root:root
是 Web 服务器的默认根文件夹,并且由(而不是user:mail
)拥有,从而导致Permission denied
错误。
结果其实还不错。如果 Postfix 可以写入该目录,则 www-data 收到的所有邮件都可以通过http://example.com/Maildir/. 日志中的错误信息本身不是您应该修复的问题,但是您必须花一些时间来考虑您的邮件服务器的整体配置以及所需的状态:
- 用户 www-data(网络服务器)是否需要接收邮件?谁会阅读它?
- 如果您有
virtual_alias_domains
您使用的域名,您mydestination
是否需要local_recipient_maps
? - 如果您确实需要根据
/etc/aliases
您的情况进行投递virtual_alias_maps
,您是否应该阻止某些用户接收邮件check_recipient_access
? - 你真的想要运行自己的邮件服务器? 你有专业知识和努力?安全?
在接受来自互联网的任何邮件之前,您应该掌握所有基本知识。 Postfix 的基本配置(就像这个本地传递问题一样)是其中至关重要的部分。