How to send email in PHP step by step

Pinterest LinkedIn Tumblr

Sending email is mostly used in a variety of websites and web applications. It mostly happens when you send an email by PHP code copied from other websites or blog, it goes to the spam folder. If you want to resolve this issue then you are in the right place. You can check the demo.

Hi, there I am Ankit will tell you how to code so that your email will not go to the spam folder.
Sending email messages is very common things for a web application, for example, sending a welcome email when a user creates an account on your website, sending newsletters to your registered users, or getting user feedback or comment through the website’s contact form, and so on.
For doing this, PHP provides a built-in PHP function called mail( ) for creating and sending email messages to one or more recipients dynamically from your PHP application either in a plain-text form or formatted HTML. The basic syntax of this function can be given with:

This functions 4 required parameters

  • to – This is the first parameter required. Put the email id of the person to which you want to send the emails.
  • subject – This is the 2nd parameter tells the subject of the mail you want, you can write it.
  • message – This is the 3rd parameter. As the name suggests, This is the message what you want to send to recipients.
  • headers – This is the 4th parameter which tells about who is sending the email, what is the name of the sender …etc.
So that’s enough. Let’s make our hands dirty with code.
Create the index.php file
<!doctype html>
<html lang="en">
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <link rel="icon" href="" type="image/x-icon">
    <link rel="stylesheet" href="">
    <link rel="stylesheet" href="">
    <script type="text/javascript" src=""></script>
    <script type="text/javascript" src=""></script>
    <title>Send Email Example</title>
<div class="container">
    <div class="row">
        <div class="col-sm-9 col-md-7 col-lg-5 mx-auto">
            <div class="card card-signin my-5">
                <div class="card-body">
                    <h5 class="card-title text-center">Send Email</h5>
                    <form action="email-script.php" method="post" class="form-signin">
                        <div class="form-label-group">
                            <label for="inputEmail">From <span style="color: #FF0000">*</span></label>
                            <input type="text" name="fromEmail" id="fromEmail" class="form-control"  value="" readonly required autofocus>
                        </div> <br/>
                        <div class="form-label-group">
                            <label for="inputEmail">To <span style="color: #FF0000">*</span></label>
                            <input type="text" name="toEmail" id="toEmail" class="form-control" placeholder="Email address" required autofocus>
                        </div> <br/>
                        <label for="inputPassword">Subject <span style="color: #FF0000">*</span></label>
                        <div class="form-label-group">
                            <input type="text" id="subject" name="subject" class="form-control" placeholder="Subject" required>
                        <label for="inputPassword">Message <span style="color: #FF0000">*</span></label>
                        <div class="form-label-group">
                            <textarea  id="message" name="message" class="form-control" placeholder="Message" required ></textarea>
                        </div> <br/>
                        <button type="submit" name="sendMailBtn" class="btn btn-lg btn-primary btn-block text-uppercase" >Send Email</button>

When you will check, you will get this output

 How to send email in PHP step by step-output

In index.php you have <form> tag has the action of email-script.php. This is code for same.


if (isset($_POST['sendMailBtn'])) {
    $fromEmail = $_POST['fromEmail'];
    $toEmail = $_POST['toEmail'];
    $subjectName = $_POST['subject'];
    $message = $_POST['message'];

    $to = $toEmail;
    $subject = $subjectName;
    $headers = "MIME-Version: 1.0" . "\r\n";
    $headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";
    $headers .= 'From: '.$fromEmail.'<'.$fromEmail.'>' . "\r\n".'Reply-To: '.$fromEmail."\r\n" . 'X-Mailer: PHP/' . phpversion();
    $message = '<!doctype html>
			<html lang="en">
				<meta charset="UTF-8">
				<meta name="viewport"
					  content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
				<meta http-equiv="X-UA-Compatible" content="ie=edge">
			<span class="preheader" style="color: transparent; display: none; height: 0; max-height: 0; max-width: 0; opacity: 0; overflow: hidden; mso-hide: all; visibility: hidden; width: 0;">'.$message.'</span>
				<div class="container">
    $result = @mail($to, $subject, $message, $headers);

    echo '<script>alert("Email sent successfully !")</script>';
    echo '<script>window.location.href="index.php";</script>';


Now upload to these files to your live server and fill the form, hit the submit button.

How to send email in PHP step by step-output

You just need to copy and paste the code nothing else. The code is very simple. And if you still face any problem you can download the source code from here.

You can also watch this video explained the same as in the above post.

Happy coding 🙂

I am a professional Web / Software developer, B.Tech CSE, who has been working in PHP & CodeIgniter and WordPress for more than 2+ years and know it inside and out, including the creation of Web Apps, WordPress websites from scratch and their customization.


  1. very useful information especially for non-tech s! thanks for sharing this post!
    The Handy Journal-

  2. Such nice information and it would be helpful a lot especially for bloggers thanks for sharing.

  3. Ruchi Verma Reply

    This is so useful and I really liked the way you explained !!

  4. This is interesting. This isnt really my world but this will be helpful for people who use PHP

  5. Kevin Kubala Reply

    Just wanna tell that this is handy, Thanks for taking your time to write this.

  6. Seetharaman Reply

    Its good! but, it hasn’t shown the message on my mail id

  7. Simple and to the point. Thank you Ankitbhai.
    I am not a web developer and still was able to understand this. Thank you from Germany.

Write A Comment