How to set up email with WAMP

Development sites and production sites; host and local servers

When I develop a new website, say for my blog, I set up a mock version on my laptop. In techy-speak, I am using a “development site” on a “server” on “local host”.  When the website is ready, I move it to my hosting service (in my case Dreamhost in the US). That is my “production site” and the website will thereafter physically reside on their servers and they will be the host.

Set up WAMP

I use a standard laptop to develop my websites. This one has Windows 7. My last one had Windows XP, and so on.  To set up my local server, I download WAMP.  As I only download WAMP when I have a new computer, I follow the instructions on LifeHacker, which are very clear.

Basically, I arrive at an arrangement where I have

  • A directory in C: called C:wamp
  • A program under C:ProgramFiles called WampServer where I can fire up WAMP (I leave WAMP off when I am not using it)
  • Within C:wamp is C:wampwww where my websites are stored
  • And within WampServer is access to localhost, PHP and MySQL.  PHP runs the server and MySQL sets up databases to store blogs.

It is all rather baffling at first but set aside a quiet Sunday afternoon and work methodically.  You will manage fine.

Set up email for a development site on WAMP

This post is about setting up email to work with a development site. I never bothered to set it up for my WordPress mockups because I already knew how WordPress worked and I could fast forward in my mind to what the production site would look like.  But yesterday, I downloaded Elgg to develop a social network and I really wanted to test the email functionality.  So this is how I set up email functionality for WAMP.

The basic principles are that I downloaded an email service called sendmail and I edited my PHP.ini file.  Both are easy and I will go into the details just now. This paragraph is to record an important point.  The set up changed the default email in the PHP.ini file. This is why that matters.  It is highly probable that each development site has a different email address.  The solution in this email assumes that the same email address is used with every site.  Either use the same email address for all your development sites or remember to change the sendmail.ini each time you change sites (and possibly the php.ini as well).  Whatever, don’t be surprised if something breaks. This could be the cause.

How to set up email for WAMP in three steps

#1 Download sendmail into a the c:wampbinsendmail

You will know you are in the right place because  bin has directories for PHP and MySQL

#2 Edit sendmail.ini in a text editor

I linked to a gmail account so at the date of writing (April 2012), look for these lines and fix them accordingly

smtp_server=smtp.gmail.com

smtp_port=587

smtp_ssl=tls

auth_username=youremailaddresses@gmail.com

auth_password=youremailpassword

NB I am using an email address that works with Google Apps so the gmail.com in my email address actually read myname@mydomainname.com

Save!

#3 Edit your php.ini file

On my version of Windows 7, I start my WampServer by finding it on the All Programs list. Then I look on the bottom tool bar for an upward arrow.  I activate WAMP with the big W.  Once it turns green, I can find everything that comes with WAMP.

I select PHP and open PHP.ini in a text editor.  I find “mail function” and I will now edit it out all mail settings AND add a path directing WAMP to the sendmail that I just set up.  These are the important lines.

[mail function]

; For Win32 only.

; http://php.net/smtp

; SMTP =

; http://php.net/smtp-port

; smtp_port = 25

 

; For Win32 only.

; http://php.net/sendmail-from

; sendmail_from = an email address that is already there

 

; For Unix only.  You may supply arguments as well (default: “sendmail -t -i”).

; http://php.net/sendmail-path

sendmail_path = C:wampbinsendmailsendmail.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 =

In short, make sure all the lines but one start with a semi-colon and copy the path line above.

Save!

And restart your server by pressing the arrow on the tool bar, selecting W, and “restart all services”.

Done

Now test your email service. You should be able to send an email from Elgg (or any other service). So try it – send an email from your development website (the email address does match what you put in sendmail.ini, right?) to another of your email addresses and go to see it it arrives within seconds.

Done!  You have set up email functionality in WAMP.

Make your own notes so you can do it again. And importantly, recall what you have done when you move to a production site or start another development site.  Write your own notes!  It only takes a few minutes!

CHECK OUT SIMILAR POSTS

Similar Posts:

47 thoughts on “How to set up email with WAMP”

  1. THANK YOU!!! I have been pulling my hair out trying to work on a Joomla website locally and have spent my whole day trying to figure out how to send email. I cannot tell you how many HUNDREDS of blog sites on Joomla I’ve been to and found so many people with the same problem but no solutions. You are the only one who’s solution worked for me — my wamp was missing the email setup! Thank you again! I’ll have to come back and check out your blog further another time. Peace!

  2. I followed your directions to the letter, and it seems to work in that I no longer get a php error with WAMP when using the mail() function on a page, but the emails are not arriving in my gmail account. Everything is typed correctly with the proper information. Could there be something else that might be preventing a delivery once it is sent with mail()?

  3. I solved it. I need an application specific password for sendmail since I have that security feature turned on for google. I just need to figure out how to use one for sendmail.

  4. Mr. John
    With a very kind request I wanna ask you hoe you overcome your problem. I am facing the same problem and want your help at once

  5. Thanks for this, I do most of my development work on wamp but have to load on to my server to check email features, this will save me loads of time.

  6. Thanks alot, again and again After going through your advice am sure it will help me…mine too was wamp hosted in my pc and I want pple in the LAN to register but it kept syaing could not instatiate mail function……thanks alot

  7. I have written a php script using senmail, and saved it in “C:wampwwwmail.php”

    i have made all the above said changes in php.ini & sendmail.ini

    but when i am running the code “localhostmail.php”

    error showing.

    Warning: mail() [function.mail]: Failed to connect to mailserver at “localhost” port 25, verify your “SMTP” and “smtp_port” setting in php.ini or use ini_set() in C:wampwwwmail.php on line 9
    Failure: Email was not sent!

    Anyone here please help me, i have spend already 1½ day in sending php mail using my gmail account. But nothing is working. Please help me guys. Thank you in advance

  8. I had to disable the pop3 authentication for mine to work. If anyone doesn’t get it to work, I highly suggest uncommenting the line debug_logfile=debug.log (remove the ; ) and view the log file.

    Thank you Jo!

  9. It didnt work for me at first. I checked the error log and found the error as “11/09/23 22:07:05 : Message is missing sender’s address”. I was using mail(“receiver@mail.com”, “Subject”, “Message”) format and I changed the format to mail(“receiver@mail.com”, “Subject”, “Message”, “From: sender@mail.com“) and it worked.

    So if your sendmail is not working, check error.log file as it will be more helpful (not all errors and warnings are displayed in browser)

  10. Thanks Dear,
    This text help me a lot.
    I was searching for this from last 15 days.
    and finally i send the mail from my PHP script using you solution.

    Thanks a lot!!!

  11. Same issue as Dibyendu above. Running a simple php mail() call results in warning:

    [Mon Oct 29 16:03:50 2012] [error] [client 127.0.0.1] PHP Warning: mail(): Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\wamp\www\Custom\incs\testmail.PHP on line 7, referer: http://localhost/Custom/incs/

    Did anyone figure out the probably issue. I am a WAMP newby so I might be screwing it up – but I have followed the above to a t.

  12. Hi,

    Everything went fine but haven’t received any email in my inbox.

    Have setup as per you.

    Please reveiw the code I have used

  13. Hey got this in error log fle

    ‘C:wampbinsendmailsendmail.exe’ is not recognized as an internal or external command,
    operable program or batch file.
    ‘C:wampbinsendmailsendmail.exe’ is not recognized as an internal or external command,
    operable program or batch file.
    ‘C:wampbinsendmailsendmail.exe’ is not recognized as an internal or external command,
    operable program or batch file.
    ‘C:wampbinsendmailsendmail.exe’ is not recognized as an internal or external command,
    operable program or batch file.
    ‘C:wampbinsendmailsendmail.exe’ is not recognized as an internal or external command,
    operable program or batch file.
    ‘C:wampbinsendmailsendmail.exe’ is not recognized as an internal or external command,
    operable program or batch file.

  14. Also when I use
    sendmail_path = “C:\wamp\sendmail\sendmail.exe -t -i”

    get message which is define in my else coz of above code

    and if I use

    sendmail_path = C:wampbinsendmailsendmail.exe -t

    as per you ..get message as Email sent which I should receive if mail function works…..

    But problem is I don’t receive any email in my inbox.

    Please help it’s do or die for me.

    Thanks
    Ani

  15. I am getting the error

    Warning: mail(): Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\wamp\www\email\mail.php on line 4

    Please help me ASAP

  16. Thanks for this useful tutorial. Got it working for me.

    One thing: it took me a little while to figure out that the php.ini file I needed to edit was the one in the wamp/bin/apache/Apache[version]/bin directory rather than that in wamp/bin/php directory. Thought this might be worth mentioning in case it catches anyone else out.

  17. Hello, I did this the first time by installing wamp server and a joomla site from scratch and it worked perfectly. But now I moved a joomla website from an online server and it doesn’t work now. I don’t get any error messages but emails are not being sent. Anyone can help?

    Thank you.

  18. I am also getting this error. can someone help please

    Warning: mail(): Failed to connect to mailserver at “localhost” port 25, verify your “SMTP” and “smtp_port” setting in php.ini or use ini_set() in C:\wamp\www\email\mail.php on line 4

    1. ^Disregard. After putting the sendmail in the bin folder AND realizing i put the path under sendmailfrom, everything works flawlessly 🙂

  19. Maximum execution time of 30 seconds exceeded in C:\wamp\www\send-mail.php on line 10
    Call Stack
    Connection Closed Gracefully.

  20. After installing, I had the same errors you all did. I ended up adding the semi-colons in the spots suggested as well as ran into the similar problem with no error, but mail not being sent. The log stated:

    ** Message is missing sender’s address

    So I went into sendmail.ini and modified this line:

    force_sender=

    Once an address was set, it worked perfectly.

Leave a Reply

Your email address will not be published. Required fields are marked *