How to send mail using localhost in php

To send mail using localhost in PHP, you'll need to configure your PHP script to use a mail server on your local machine. Here's a step-by-step guide to help you achieve this:

Prerequisites:

  1. You have PHP installed on your local machine.
  2. You have a mail server set up on your local machine (e.g., Postfix, Sendmail, or Mailhog).
  3. You have a PHP script that needs to send an email.

Step 1: Configure your mail server

If you don't have a mail server set up on your local machine, you can install one. Here are some popular options:

Once you have your mail server set up, make sure it's running and listening on a port (e.g., 25).

Step 2: Configure your PHP script

In your PHP script, you'll need to use the mail() function to send an email. Here's an example:

<?php
$to = '[email protected]';
$subject = 'Test email';
$message = 'This is a test email sent from localhost.';

$headers = 'From: [email protected]'. "\r\n".
           'Reply-To: [email protected]'. "\r\n".
           'MIME-Version: 1.0'. "\r\n".
           'Content-Type: text/plain; charset=UTF-8';

if (mail($to, $subject, $message, $headers)) {
    echo 'Email sent successfully!';
} else {
    echo 'Error sending email.';
}
?>

In this example, we're using the mail() function to send an email to [email protected] with a subject of "Test email" and a message body of "This is a test email sent from localhost.". The headers variable contains the email headers, including the From and Reply-To addresses.

Step 3: Configure your PHP settings

To allow PHP to send emails using your local mail server, you'll need to configure your PHP settings. You can do this by adding the following lines to your php.ini file (usually located in C:\php on Windows or /etc/php.ini on Linux/macOS):

[mail function]
; For Win32 only.
SMTP = localhost
smtp_port = 25

; For Win32 only.
sendmail_from = [email protected]

These settings tell PHP to use the localhost mail server and port 25 to send emails.

Step 4: Test your email sending

Save your PHP script and run it using your web server (e.g., Apache, Nginx, or IIS). If everything is set up correctly, you should receive an email at the recipient's address.

That's it! You should now be able to send emails using your localhost mail server in PHP.