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
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.