Sunday, January 23, 2011

Sendmail not working from local PHP when headers not specified

Hi. I'm having trouble getting my local XAMPP server to send emails via my remote SMTP server.

In PHP, if I put:

$headers  = "From: dan@fromdomain.com\r\n";
mail('dan@todomain.com', 'test', '', $headers);

Then this works. However, if I don't specify the header, ie.:

mail('dan@todomain.com', 'test', '');

Then this fails. The sendmail.log file says:

smtpstatus=554 smtpmsg='554 Message refused.' errormsg='the server did not accept the mail' exitcode=EX_UNAVAILABLE

I've tried changing my sendmail command in my php.ini to:

sendmail_path = "C:/xampp/sendmail/sendmail.exe -t -f dan@fromdomain.com"

but this doesn't work either.

Thanks for any help with this, Dan.

ps. this is on windows.

  • From the PHP mail() documentation:

    When sending mail, the mail must contain a From header. This can be set with the additional_headers parameter, or a default can be set in php.ini.

    As far as your sendmail command line, I believe the -f directive and the address need to be together. i.e.:

    -fdan@fromdomain.com

    Peace, Tom

0 comments:

Post a Comment