Just a couple of notes while I work. I'll try and keep up with this before it overwhelms me.


Jun 26, 2011
@ 9:11 am
21 notes

Configure Gmail as SMTP in XAMPP to send mail

So, after rummaging through the net for 2 whole days trying to look for good complete instructions to set up the mail server, I didn’t find. Eventually, I’d figured it out after piecing together random info from various numerous blogs and forums. Never have been this happy to finally successfully send a mail. So, I decided I’d put up the complete set of instructions to do so.

Below instructions are written for XAMPP1.7.4 (Working on Vista)

1. Open the PHP.ini file. (Most likely found in C:\xampp\php\php.ini or whichever drive you installed your XAMPP)

2. Search for the [mail function]

3. Change the settings to -[mail function]

; For Win32 only.
; http://php.net/smtp
SMTP = localhost    
; http://php.net/smtp-port
smtp_port = 25

; For Win32 only.
; http://php.net/sendmail-from
;sendmail_from =

; For Unix only.  You may supply arguments as well (default: "sendmail -t -i").
; http://php.net/sendmail-path
 sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"

(Removing the ; enables the function.)

4. Save it and restart the Apache.

5. Open the sendmail folder (Found in the XAMPP folder thus C:\xampp\sendmail)

6. Chances are, the bundle probably comes with a weird combination of files and codes. So, to save all the hassle of troubleshooting afterwards, clear all the files in the folder.

7. Download a new version of the sendmail.zip from http://glob.com.au/sendmail/

8. Unzip the entire folder into the original sendmail folder - C:\xampp\sendmail

9. Open the sendmail.ini (C:\xampp\sendmail\sendmail.ini  — found in the same folder)

10. Change the setting to the following — (I’ll post the entire file so no one gets confused from the cuts)


; 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 port (normally 25)


; SMTPS (SSL) support
;   auto = use SSL for port 465, otherwise try to use TLS
;   ssl  = alway use SSL
;   tls  = always use TLS
;   none = never try to use SSL


; 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


; log smtp errors to error.log (defaults to same directory as sendmail.exe)
; uncomment to enable logging


; create debug log as debug.log (defaults to same directory as sendmail.exe)
; uncomment to enable debugging


; if your smtp server requires authentication, modify the following two lines


; if your smtp server uses pop3 before smtp authentication, modify the
; following three lines.  do not enable unless it is required.


; force the sender to always be the following email address
; this will only affect the "MAIL FROM" command, it won't modify
; the "From: " header of the message content


; force the sender to always be the following email address
; this will only affect the "RCTP TO" command, it won't modify
; the "To: " header of the message content


; 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


The bolded text are the ones that requires changes. Enter your google username and password where appropriate. I enabled the force_sender to be my mail because changing the php.ini is such a pain. You can alternatively choose to change the Mail from setting in the PHP.ini instead.

11. After this, all should be good. Run a mail script and send out the mail. It should work.

Hope this would relieve some distress from the whole SMTP setup. Have fun. :)

  1. coded-words posted this