How to configure XAMPP to send Mail from Localhost in PHP ?

99

How to configure XAMPP to send Mail from Localhost in PHP
Hello friends, Today in this blog you’ll learn How to configure XAMPP to send Mail from Localhost in PHP. Simply, XAMPP is an abbreviation for cross-platform, Apache, MySQL, PHP, and Perl. XAMPP lets you work on a local server and test local copies of websites using PHP code and MySQL databases.

As a part of the experiment, developers need to send emails, and as we all know that sending mail in XAMPP through the localhost can be much more painful if we don’t know how to configure XAMPP to send mail through the localhost using Gmail.

To send mail from localhost XAMPP using Gmail, configure XAMPP after installing it. To configure the XAMPP server to send mail from the localhost, we have to make some changes in two files one is PHP and another one is sendmail.ini.


First, go to the XAMPP installation directory and open the XAMPP folder and follow the below steps same: I’ve installed XAMPP in the C directory.

1. Go to the (C:xampp\php) and open the PHP file then find the mail function by scrolling down or simply press ctrl+f to search it directly then find the following lines and pass these values. Remember, there may be a semicolon ; at the starting of each line, simply remove the semicolon from each line which is given below.

[mail function]
For Win32 only.
http://php.net/smtp
SMTP=smtp.gmail.com
http://php.net/smtp-port
smtp_port=587
sendmail_from = your_email_address_here
sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"

That’s all for this file, save the file by pressing ctrl+s and close it.

2. Now, go the (C:\xampp\sendmail) and open the sendmail.ini then find sendmail by scrolling down or press ctrl+f to search it directly then find the following lines and pass these values. Remember, there may be a semicolon ; at the starting of each line, simply remove the semicolon from each line which is given below.


smtp_server=smtp.gmail.com
smtp_port=587
error_logfile=error.log
debug_logfile=debug.log
auth_username=your_email_address_here
auth_password=your_password_here
force_sender=your_email_address_here (it's optional)

That’s all for this file, save the file by pressing ctrl+s and close it. After all changes in the two files, don’t forget to restart your apache server.

Now, you’re done with the required changes in these files. To check the changes you’ve made are correct or not. First, create a PHP file with the .php extension and paste the following codes in your PHP file. After pasting the codes, put your details to the given variables – In the $receiver variable put the receiver email address, in the $subject variable put the email subject and do respectively.

<?php
$receiver = "receiver email address here";
$subject = "Email Test via PHP using Localhost";
$body = "Hi, there...This is a test email send from Localhost.";
$sender = "From:sender email address here";

if(mail($receiver, $subject, $body, $sender)){
    echo "Email sent successfully to $receiver";
}else{
    echo "Sorry, failed while sending mail!";
}
?>

After completing these steps, just open this PHP file on your browser. If your mail is sent successfully then there is appears a success message “Email sent successfully to …..” and in the case your mail not sent then there is appears “Sorry, failed while sending mail!”.

If mail is sent then check the receiver has got your email or not. If yes, then great you did all changes perfectly. If no, check all the changes that you have done earlier are correct or not.

Note: If your mail isn’t sent after the correct changes and you got a warning or error. Please configure your google account security as “Less secure apps”. To configure it: – Go to your Google account then click on the Security tab and scroll down, there you can see the Less secure app access panel, Simply turn on that. This panel only shows if you haven’t enabled 2-Step Verification.


Previous articleAnimated Sidebar Menu using only HTML & CSS | Side Navigation Menu
Next articleLogin & Signup Form with Email Verification using PHP and MySQL
CodingNepal is a blog where we post blogs related to HTML CSS JavaScript & PHP along with creative coding stuff and free source code files.

99 COMMENTS

  1. You've to create a PHP file with the extension .php and paste the last codes on that PHP file but before pasting the codes make sure you've configured the XAMPP and turn on less secure app on your google account. You can read this blog carefully.

  2. Hola buenas tardes, me manda el siguiente error:

    Advertencia:mail(): No se pudo conectar al servidor de correo en el puerto 25 "localhost", verifique su configuraciĂłn "SMTP" y "smtp_port" en php.ini o utilice ini_set() en C:-xampp-htdocs-Verificacion de email-controllerUserData.php en la lĂ­nea 33

  3. I followed all the steps but an error message appeared to me saying
    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: xampp htdocs p1 mail.php on line 7
    Sorry, failed while sending mail

  4. 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:xampphtdocsusertablecontrollerUserData.php on line 33

    what does it mean

  5. 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:xampphtdocsusertablecontrollerUserData.php on line 33

    I KEEP GETTING THIS

  6. 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:xampphtdocsswdacontrollerUserData.php on line 33

    please help sir

  7. Warning: mail(): SMTP server response: 530 5.7.0 Must issue a STARTTLS command first. x5sm10407906pfr.83 – gsmtp in C:xampphtdocsLogin and Signup Form with Email Verification – PHPcontrollerUserData.php on line 33

  8. <?php
    $receiver = "[email protected]";
    $subject = "Email Test via PHP using Localhost";
    $body = "Hi, there…This is a test email send from Localhost.";
    $sender = "From:[email protected]";

    if(mail($receiver, $subject, $body, $sender)){
    echo "Email sent successfully to $receiver";
    }else{
    echo "Sorry, failed while sending mail!";
    }

    This php file with what name we have to save and where it showing error

    Warning: mail(): SMTP server response: 530 5.7.0 Must issue a STARTTLS command first. 78sm5550625pfz.211 – gsmtp in C:xampphtdocsLogin and Signup Form with Email Verification – PHPcontrollerUserData.php on line 33 (Failed while sending code) I configure all xampp and sendmail settings.

  9. Create a php file inside the HTDOCS folder with .php extension and paste the following codes in this file then put the receiver email and sender email address in the mentioned fields.

  10. 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:wamp64wwwlogincontrollerUserData.php on line 118
    what was the mistake?

  11. Warning: mail(): SMTP server response: 530 5.7.0 Must issue a STARTTLS command first. r17sm13504747pfr.153 – gsmtp in C:xampphtdocsmail.php on line 7
    Sorry, failed while sending mail!

    bro, create a telegram group so that we will share our queires there so that you can respond to all

  12. Notice: Undefined index: message in C:xampphtdocsmail.php on line 3

    Warning: mysqli::__construct(): (HY000/1049): Unknown database 'contact us' in C:xampphtdocsmail.php on line 6
    Connection Failed : Unknown database 'contact us'

  13. Notice: Undefined index: message in C:xampphtdocsmail.php on line 3

    Warning: mysqli::__construct(): (HY000/1049): Unknown database 'contact us' in C:xampphtdocsmail.php on line 6
    Connection Failed : Unknown database 'contact us'

  14. Hi thanks for this tutorial and instructions but I got the error warning after I signed up.

    The data is already input on my data base. Name, email, password and the code also the verification

    But the email is not.
    Warning said is mail():SMTP server response 530 5.7.0 must issue a starTTLS command first.gjlsm12559445pjb.11 – gsmtp in "distinction folder" on line 33 where located this code–>> if(mail($email, $subject, $message, $sender)){ . . . . ..

  15. sorry to disturb admin. I have followed the instructions for creating your website and I entered the registration menu. I have filled in all the data then I press the register button. a text appears. FAILED WHEN ENTERING DATA TO DATABASE ??
    Please explain where I went wrong. Thank you

  16. sorry to disturb admin. I have followed the instructions for creating your website and I entered the registration menu. I have filled in all the data then I press the register button. a text appears. FAILED WHEN ENTERING DATA TO DATABASE ??
    Please explain where I went wrong. Thank you

  17. sorry to disturb admin. I have followed the instructions for creating your website and I entered the registration menu. I have filled in all the data then I press the register button. a text appears. FAILED WHEN ENTERING DATA TO DATABASE ??
    Please explain where I went wrong. Thank you

  18. Thanks for the tutorial. I got this error:
    21/01/20 11:13:23 : Username and Password not accepted. Learn more at https://support.google.com/mail/?p=BadCredentials f13sm1134675iog.18 – gsmtp

    To fix this problem, I had to login to my Gmail account, go to security, and then turn on "Less secure app access." This is "not recommended" according to Google, but it wouldn't work without this setting turned on.

  19. i already got it after 3h THANKK YOU.
    for errors , kindly restart your apache after encoding those codes.
    and some are in comment in php.ini so we should remove the " ; " to enable the lines
    after that dont forget to enable the less app in gmail settings

  20. Warning: mail(): Failed to connect to mailserver at "smtp.gmail.com" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:xampphtdocsSIScontact.php on line 41

    its been 2hrs since ive been trying to read the blog
    pleasseeee helpppp

  21. I keep getting this error. Please help. I have configured properly as mentioned abovee

    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()

  22. Thanks worked .. I was getting multiple issues ..as I open the .ini files in notepad… If you can update the comment .. the ini.. to be opened in PHP … most error will be sorted.

  23. $receiver = "receiver email address here";
    $subject = "Email Test via PHP using Localhost";
    $body = "Hi, there…This is a test email send from Localhost.";
    $sender = "From:sender email address here";

    if(mail($receiver, $subject, $body, $sender)){
    echo "Email sent successfully to $receiver";
    }else{
    echo "Sorry, failed while sending mail!";
    }
    where want to paste this code. pls

  24. I didn't recieve the email, and yes, I turn on the "less secure apps" on Google. The blog was great but I think you should update it, so that you can address the multiple problems we are all having.

  25. i watched your other tutorial and i have a question sir?
    should i enter the last part of the code PHP CODE: to my controllerUserData.php or separate file?

  26. hi, sir please make the video for this process please sir soon I am waiting for your video. make as soon as possible.

  27. Hi. What can i do when i got “Email sent successfully”, but i don’t get any mail on my mail inbox? i enabled that thing with “not secure sites” on my account, but i still don’t get any mail. Do you know how can i fix this? I’ve been struggling 4 days to resolve this. Help, please!!

      • But if i get the “Email sent successfully”, that means it should work, right? It can’t be a server error or something, right??? I’m really tired, i can’t give up, because i can’t finish my site without it. I worked over 20 hours to resolve this problem, :(( I’m gonna ask a friend if he can do that. Thanks for your help btw

LEAVE A REPLY

Please enter your comment!
Please enter your name here