PHP mail does not get sent, how do I debug?

后端 未结 2 2071
爱一瞬间的悲伤
爱一瞬间的悲伤 2021-02-07 05:09

I have been trying to send email for registration, invitations and so on.

On local development, emails get sent. However once on the server no mails arrive.

I

相关标签:
2条回答
  • 2021-02-07 05:45

    The solution that worked for me on shared hosting was to use the -f additional parameter in the mail function. Instead of ...

    mail($to, $subject, $body, $headers);

    I had to use ...

    mail($to, $subject, $body, $headers, " -fvaliduser@validdomain.com");

    According to the php manual the additional parameters are provides as additional arguments to sendmail. Note that the lack of space between -f and the email seems intentional.

    In my case on one particular host I did not have access to the postfix/sendmail logs. The original command returned true and a cpanel log showed it was accepted for delivery, however the recipient never received it.

    0 讨论(0)
  • 2021-02-07 05:51

    According to your comment above, it looks like your sendmail path is either wrong or commented out in your php.ini. It should be something like this:

    sendmail_path = /usr/sbin/sendmail -t -i
    

    If you're unsure where your sendmail binary resides, you may find it by using:

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