使用 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 路径。
我已经正确安装了 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 路径。