mail:无法打开流:权限被拒绝?

时间:2009-12-15 10:11:27

标签: php email sendmail ssmtp

我收到此警告用PHP发送邮件 警告:mail(1)[function.mail]:无法打开流:/ home /...

中的权限被拒绝
  • 使用ssmtp和gmail作为smtp
  • PHP 5.3.1
  • 日志中没有任何内容(没有错误)
  • 邮件到达目的地
  • 文件的权限是rwxrxrx

允许拒绝什么?

即使调用像

这样简单的东西

邮件(“mail@domain.com”,“主题”,“正文”);

我仍然收到此警告

3 个答案:

答案 0 :(得分:9)

问题是网络服务器用户无法编写和/或读取邮件日志文件。对于propper配置:

1)创建电子邮件日志记录的文件夹和文件。例如:

touch /var/log/php5/mail.log

2)在php.ini中设置日志文件:

mail.log = /var/log/php5/mail.log

3)根据需要设置该文件夹/文件的所有者和组:

使用

检查所有者和群组
ls -la /var/log/php5

如果需要,更改组(更改任何Web服务器组的www-data)

sudo chgrp -R www-data /var/log/php5

如果需要,更改所有者(更改您的Web服务器用户的www-data)

sudo chown -R www-data /var/log/php5

答案 1 :(得分:0)

如果简化它会起作用吗?

 $mail_sent = mail('address@domain.com', 'subject', 'message');

如果是,那么你知道邮件有效。

之后,我会删除$ eol的东西,看看是否修复了它。如果没有,那么我会删除标题块并继续删除它直到它开始工作。

答案 2 :(得分:0)

毕竟,这是一个文件权限问题。但不是在脚本中,而是在目录中。 我跑了chmod -R 777 *并发出了警告。经过进一步检查,我找到了一个名为1的文件,该文件包含已发送邮件的日志。 警告是php告诉我他无法打开此文件

解决方案:

 sudo chmod -R 755 *
 sudo chmod  777 1

F#$%^%隐秘的php错误消息