mail: failed to open stream: Permission denied?

后端 未结 3 1856
南方客
南方客 2020-12-16 08:28

I get this warning sending mails with php Warning: mail(1) [function.mail]: failed to open stream: Permission denied in /home/...

  • using ssmtp and gmail as smtp
相关标签:
3条回答
  • 2020-12-16 09:12

    It turns out to be a file permissions problems after all. But not in the scripts, but in the directory. I ran a chmod -R 777 * and the warning went of. upon further examination I found a file called 1, and this file contained a log of the sent mails. The warning was php telling me that he was unable to open this file

    Solution:

     sudo chmod -R 755 *
     sudo chmod  777 1
    

    F#$%^% cryptic php error messages

    0 讨论(0)
  • 2020-12-16 09:21

    The problem is that the webserver user is not able to write and/or read the mail log file. For a propper configuration:

    1) create the folder and the file for the email logging. For example:

    touch /var/log/php5/mail.log
    

    2) set the logging file in php.ini:

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

    3) set the owner and the group for that folder/file in case needed:

    check the owner and the group with

    ls -la /var/log/php5
    

    in case needed, change the group (change www-data for whatever your web server's group is)

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

    in case needed, change the owner (change www-data for whatever your web server's user is)

    sudo chown -R www-data /var/log/php5
    
    0 讨论(0)
  • 2020-12-16 09:27

    Does it work if you simplify it?

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

    If it does, then you know that mail works.

    After that, I would remove the $eol stuff and see if that fixes it. If not, then I would remove the header block and keep removing stuff until it starts working.

    0 讨论(0)
提交回复
热议问题