I wonder if anyone can give me some assistance with getting the php mail() function to work. When I execute a php mail() command it returns success but the email is not sent. I've had a search through the posts and most of the stuff on sendmail.ini is about it's configuration, of which I tried many permutations before i noticed this line cropping up in C:\Program Files\xampplite\apache\logs\error.log:
- Code: Select all
sendmail.exe: C:\Program Files\xampplite\sendmail\sendmail.ini: line 1: unknown command ;
I tried removing the sendmail.ini comments etc. but it always seems to fall over at the first line, making me think that I've missed a step somewhere or there is some uncommon quirk with my system that I can't find documentation for. If anyone can tell me why this is happening / what I'm doing wrong I would be grateful.
my sendmail.ini file is (currently):
- Code: Select all
; configuration for fake sendmail
; if this file doesn't exist, sendmail.exe will look for the settings in
; the registry, under HKLM\Software\Sendmail
[sendmail]
; you must change mail.mydomain.com to your smtp server,
; or to IIS's "pickup" directory. (generally C:\Inetpub\mailroot\Pickup)
; emails delivered via IIS's pickup directory cause sendmail to
; run quicker, but you won't get error messages back to the calling
; application.
smtp_server=*****
; smtp port (normally 25)
smtp_port=*****
; the default domain for this server will be read from the registry
; this will be appended to email addresses when one isn't provided
; if you want to override the value in the registry, uncomment and modify
default_domain=*****
; log smtp errors to error.log (defaults to same directory as sendmail.exe)
; uncomment to enable logging
error_logfile=errors.txt
; create debug log as debug.log (defaults to same directory as sendmail.exe)
; uncomment to enable debugging
debug_logfile=debug.txt
; if your smtp server requires authentication, modify the following two lines
auth_username=*****
auth_password=*****
; if your smtp server uses pop3 before smtp authentication, modify the
; following three lines
;pop3_server=*****
;pop3_username=*****
;pop3_password=*****
; to force the sender to always be the following email address, uncomment and
; populate with a valid email address. this will only affect the "MAIL FROM"
; command, it won't modify the "From: " header of the message content
force_sender=*****
; sendmail will use your hostname and your default_domain in the ehlo/helo
; smtp greeting. you can manually set the ehlo/helo name if required
;hostname=localhost
and the relevant part of my php.ini file is:
- Code: Select all
[mail function]
; For Win32 only.
; http://php.net/smtp
;SMTP = mail.danothy.co.uk
; http://php.net/smtp-port
;smtp_port = 25
; For Win32 only.
; http://php.net/sendmail-from
;sendmail_from = danothy@danothy.co.uk
; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
; http://php.net/sendmail-path
sendmail_path = "\"C:\Program Files\xampplite\sendmail\sendmail.exe\" -t"
; Force the addition of the specified parameters to be passed as extra parameters
; to the sendmail binary. These parameters will always replace the value of
; the 5th parameter to mail(), even in safe mode.
;mail.force_extra_parameters =
; Add X-PHP-Originating-Script: that will include uid of the script followed by the filename
mail.add_x_header = Off
; Log all mail() calls including the full path of the script, line #, to address and headers
;mail.log = "C:\Program Files\xampplite\apache\logs\php_mail.log"
For background purposes, I'm using my PC (XP Home) as a development environment and as I go I am configuring the installation to match that of my host (they started off very similar to begin with anyway).
Thanks,
Dan.