I recently installed Drupal for test/evaluation, on a local WinXP box running Apache & PHP. I run Vpop3 (from www.pscs.co.uk) as MTA.
All went fine until I started trying to add users, whereupon the mail() function would barf : mail(): "sendmail_from" not set in php.ini or custom "From:" header missing in F:\www\drupal\modules\user.module on line 374.
Both untrue. What's more a test Joomla install and Gallery2 both have no trouble sending subscription mails from the same box, via the same MTA. But they seem to use a different method.
After reading dozens of messages here and elsewhere from people having similar problems - it should be a FAQ, in big red letters - I have come up with a couple of solutions.
1. In Php.ini set
;For Win32 only
SMTP = 10.0.0.1
or whatever C-class LAN IP your MTA machine inhabits. Here at least localhost or 127.0.0.1 DO NOT WORK even though the MTA is on the localhost. I have no idea why!
This completely fixed the problem for me, after about 2 days hair loss.
2. There is a cunning little 'fake sendmail' prog at http://glob.com.au/sendmail - this pretends to be Unix sendmail as far as PHP is concerned, and relays the outgoing mail to whatever MTA is configured in its .ini file. I did not get to try it, as #1 did the trick for me, but its reason for existing is PHP mail() being extremely dim where anything other than sendmail is used, especially on Windows. It doesn't spool, however, like the real sendmail does.