I always have problem for testing my PHP codes which were include mail function. I used to upload them on server to test them. But today I decided to find the way to send the mail with PHP using XAMPP from localhost. Then I decided to share this simple tip with you guys. Before we start the procedure you need to have an email address on a running mail server such as Yahoo, Gmail or any other server that you have access to configuration of them as well, because we need their port number.
- First go to the path that you installed Xampp application. By default it is "C:\xampp\".
- Then we need to find the php.ini file which contains the configurations belong to PHP. This file by default is located at "C:\xampp\php\php.ini". Open it using any text editor like notepad.
- Using search in the editor try to find "sendmail_path". There should be two of them. One is commented using a ";" (semicolon) in the beginning of the line , and the other one is not commented. Comment the one that is active and active the one is commented. After the edit it should looks like below... (Similar)
sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"
; XAMPP: Comment out this if you want to work with mailToDisk,...
- Save the php.ini file and restart the Apache process. This is necessary for the configuration to take place.
- Next navigate to the sendmail directory. By default it should be located at "C:\xampp\sendmail" and open the "sendmail.ini" in the text editor.
- Now we need to set the configuration for the mail server. For this case I chose Gmail. The SMTP address of Gmail is: "smtp.gmail.com" and the SMTP port for Gmail is "587".
- Find "smtp_server" and write the Gmail SMTP address in front of that.
- Find "smtp_port" and write the Gmail SMTP port in front of that.
- Scroll down , you should be able to see "auth_username" & "auth_password". Put your gmail username in front of auth_username and put the password in front of auth_password .
- Save and now you are good to send mail from local host.
- Note that your PHP mail function should have "from" header,otherwise your mail will not go through.
- Also remember the that the destination will receive the mail from your Gmail address not from the address you put in your PHP code.
- The following code is a simple example of PHP script which can send a successful mail.
$to = "destinationAddress@Anywhere.com";
$subject = "The mail subject goes here";
$content= "And this is the mail content!";
$headers = "From:Me@Mywebsite.Com\r\n";