我收到此警告用PHP发送邮件 警告:mail(1)[function.mail]:无法打开流:/ home /...
中的权限被拒绝允许拒绝什么?
即使调用像
这样简单的东西邮件(“mail@domain.com”,“主题”,“正文”);
我仍然收到此警告
答案 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错误消息