使用 Postfix 使用 PHP 邮件时权限被拒绝

Permission denied while using PHP Mail using Postfix

我已经正确安装了 postfix 和 dovecot,并按照本指南进行了所有配置:http://www.krizna.com/ubuntu/setup-mail-server-ubuntu-14-04/

但是当我尝试通过终端发送邮件时:

sudo php -r "mail('xyz@xyz.com', 'test', 'test');"

它给我错误

sh: 1: /etc/postfix: Permission denied

我尝试对 /etc/postfix 目录执行 chmod -R 777,但我仍然遇到同样的错误。

我应该怎么做才能让它正常工作?我只想将邮件从我的服务器发送到 Gmail 等其他邮件(即 xyz@xyz.com 到 abc@gmail.com)

我什至在我的 dns 管理器中配置了 mx 记录和 a 记录。

如果我看到 Postfix 日志,我有这个:

Feb 2 12:30:33 myhost postfix/pickup[16695]: ED7A120FD3: uid=33 from=<www-data> Feb 2 12:30:33 myhost postfix/cleanup[4891]: ED7A120FD3: message-id=<20160202173033.ED7A120FD3@xyz.com> Feb 2 12:30:33 myhost postfix/cleanup[4891]: warning: hash:/etc/postfix/virtual is unavailable. open database /etc/postfix/virtual.db: No such file or directory Feb 2 12:30:33 myhost postfix/cleanup[4891]: warning: hash:/etc/postfix/virtual lookup error for "xyz@xyz.com" Feb 2 12:30:33 myhost postfix/cleanup[4891]: warning: ED7A120FD3: virtual_alias_maps map lookup problem for xyz@xyz.com -- message not accepted, try again later 我在 PHP 7 运行 Apache 2 Ubuntu 14.04

上使用

(注意:Postfix 和 dovecot 似乎可以正常工作,因为我按照教程中的说明进行了 telnet 并得到了正确的响应。)

您忘记了 运行 sudo postmap /etc/postfix/virtual

解决了我的问题。只有从终端访问 Postfix 时才会发生权限错误。从 PHP 脚本访问时有效。

此外,我不得不修改 PHP.ini 之前设置为 /etc/postfix 的 sendmail 路径。