How to Use PHP to Send Emails: A Beginner's Guide
Learn how to use PHP to send emails in this beginner-friendly guide. We'll cover everything from setting up your server to writing the code and provide relevant keywords to optimize your search.

Sending emails using PHP is a common task in web development. Whether you're building a contact form or a newsletter subscription feature, knowing how to send emails programmatically can come in handy. In this article, we'll walk you through the process of using PHP to send emails, step by step.
- Set up your server
Before you can start sending emails using PHP, you need to ensure that your server is configured correctly. Most hosting providers support sending emails using the Simple Mail Transfer Protocol (SMTP), which is the standard protocol for sending emails over the internet. If you're not sure whether your server supports SMTP, contact your hosting provider to confirm.
- Write the PHP code
Once you've confirmed that your server supports SMTP, it's time to write the PHP code. In PHP, you can use the mail() function to send emails. Here's an example of how to use the mail() function to send an email:
$to = '[email protected]';
$subject = 'Test email';
$message = 'This is a test email sent using PHP.';
$headers = 'From: [email protected]' . "\r\n" .
'Reply-To: [email protected]' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
mail($to, $subject, $message, $headers);
Let's break down the code:
- The $to variable contains the email address of the recipient.
- The $subject variable contains the subject of the email.
- The $message variable contains the body of the email.
- The $headers variable contains additional headers, such as the sender's email address and the email client being used (in this case, PHP).
- The mail() function takes four parameters: the recipient's email address, the subject of the email, the body of the email, and the additional headers.
- Customize the email
Now that you have a basic understanding of how to use the mail() function to send emails, you can customize the email to suit your needs. For example, you can include attachments by using the PHPMailer library, which is a popular library for sending emails in PHP. You can also use HTML to format the body of the email, which is useful for newsletters and marketing emails.
- Test the email
Before you deploy your PHP code to your live website, it's important to test the email to ensure that it's working correctly. To do this, you can use a local development environment, such as XAMPP or WAMP, to simulate your production environment. Alternatively, you can create a staging environment on your live website, which is a replica of your production environment but is only accessible to you.
Here's an example of a ready-made HTML form and PHP script that you can use to write and send an email:
HTML Form:
<form action="send-email.php" method="post">
<label for="name">Name:</label>
<input type="text" id="name" name="name"><br>
<label for="email">Email:</label>
<input type="email" id="email" name="email"><br>
<label for="subject">Subject:</label>
<input type="text" id="subject" name="subject"><br>
<label for="message">Message:</label>
<textarea id="message" name="message"></textarea><br>
<input type="submit" value="Send Email">
</form>
This form includes fields for the name, email address, subject, and message of the email. When the user clicks the "Send Email" button, the form data is submitted to a PHP script called "send-email.php".
PHP Script:
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$name = $_POST["name"];
$email = $_POST["email"];
$subject = $_POST["subject"];
$message = $_POST["message"];
$to = "[email protected]";
$headers = "From: " . $name . " <" . $email . ">\r\n";
$headers .= "Reply-To: " . $email . "\r\n";
$headers .= "Content-type: text/html\r\n";
mail($to, $subject, $message, $headers);
echo "Your email has been sent successfully.";
}
?>
his script checks if the form has been submitted using the POST method, and then retrieves the values of the name, email, subject, and message fields. It then sets the recipient email address and constructs the email headers using the values of the name and email fields. Finally, it uses the mail() function to send the email with the subject and message provided by the user.
Note: This is just a basic example of how to send an email using PHP. In a production environment, you would need to implement additional security measures, such as sanitizing and validating the user input, to prevent email injection and spam. You would also need to configure your server to support sending emails using SMTP, as described in the previous answer.
In conclusion, sending emails using PHP is a straightforward process that can be achieved using the mail() function. By following the steps outlined in this article, you can send emails programmatically using PHP, customize the email to suit your needs, and test the email to ensure that it's working correctly. With a little practice, you'll be able to incorporate email functionality into your web applications and take your projects to the next level.