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

使用Postfix使用PHP邮件时权限被拒绝,php,email,ubuntu,postfix-mta,Php,Email,Ubuntu,Postfix Mta,我已正确安装postfix和dovecot,并按照本指南进行了所有配置: 但当我尝试通过终端发送邮件时,如: sudo php -r "mail('xyz@xyz.com', 'test', 'test');" 这给了我一个错误 sh: 1: /etc/postfix: Permission denied 我尝试对/etc/postfix目录执行chmod-R 777,但仍然得到相同的错误 我该怎么做才能让它工作?我只想从我的服务器发送邮件到其他邮件,如Gmail(即。xyz@xyz.com

我已正确安装postfix和dovecot,并按照本指南进行了所有配置:

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

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记录

如果我看到后缀日志,我有:

Feb 2 12:30:33 myhost后缀/拾取[16695]:ED7A120FD3:uid=33 from=
二月二日12:30:33我的主机后缀/清除[4891]:ED7A120FD3:消息id=
2月2日12:30:33 myhost后缀/清除[4891]:警告:哈希:/etc/postfix/virtual不可用。打开数据库/etc/postfix/virtual.db:没有这样的文件或目录
2月2日12:30:33 myhost后缀/清除[4891]:警告:哈希:/etc/postfix/虚拟查找错误xyz@xyz.com"
2月2日12:30:33 myhost后缀/清理[4891]:警告:ED7A120FD3:的虚拟别名映射查找问题xyz@xyz.com--消息未被接受,请稍后再试
我使用的是在Ubuntu 14.04上运行Apache2的PHP7


(注意:Postfix和dovecot似乎起作用了,因为我按照教程中的说明使用了telnet,并得到了正确的响应。)

您忘记运行
sudo postmap/etc/Postfix/virtual
解决了我的问题。权限错误仅在从终端访问后缀时发生。从PHP脚本访问时,它可以工作


此外,我必须修改PHP.ini sendmail路径,我以前设置为/etc/postfix。

我没有这样的目录。。我刚刚尝试在my.cnf中用alias\u database=hash:/etc/alias替换virtual\u alias\u maps=hash:/etc/virtual,但在postfix日志中没有发现错误。但只有权限被拒绝错误
/etc/postfix/virtual
不应该是目录,而应该是文件
/etc/alias
/etc/postfix/virtual
的语法稍有不同(冒号和空格用于分隔键和值),因此需要不同的工具。后者需要使用
sudo newalias
进行编译。这是我在/etc/postfix dynamicmap.cf main.cf master.cf postfix文件中的内容,postfix脚本post install sasl没有其他内容。我应该创建一个名为virtual的文件吗?@vignesh是的,请创建。只要运行
sudotouch/etc/postfix/virtual&&sudopostmap/etc/postfix/virtual
就可以了。很抱歉再次打扰您。我仍然被拒绝权限错误所困扰。但我现在可以创建虚拟的。有什么想法可以解决吗?无论您试图实现什么,
chmod 777
都是错误和危险的——您应该立即恢复到发行版的默认权限。允许所有人覆盖系统文件大大降低了恶意用户或可能入侵者的门槛。这不是一个编程问题,不能作为离题题来结束。听起来你的
路径中有
/etc
,出于一些奇怪的原因,我会尝试使用swaks进行测试,swaks是smtp的瑞士军刀。