Monday, October 15, 2012

Configure Gmail as SMTP in XAMPP to send mail

http://coded-words.tumblr.com/post/6936532107/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)


[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.gmail.com

; smtp port (normally 25)

smtp_port=465

; 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

smtp_ssl=auto

; 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=mydomain.com

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

error_logfile=error.log

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

debug_logfile=debug.log

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

auth_username=USERNAME@gmail.com   
auth_password=PASSWORD

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

;pop3_server=
;pop3_username=
;pop3_password=

; 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_sender=USERNAME@gmail.com

; 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

;force_recipient=

; 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=

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. :)

0 comments:

Post a Comment