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.

link|improve this question

50% accept rate
dan, not the solution, but there any reason why you must use sendmail? i'd used to use sendmail , but i find the configuration a bit of headache, try postfix instead. – The Unix Janitor Apr 17 '10 at 11:41
feedback

1 Answer

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

link|improve this answer
feedback

Your Answer

 
or
required, but never shown

Not the answer you're looking for? Browse other questions tagged or ask your own question.