Skip to main content

Sending Emails with PHP: A Comprehensive Guide

Email remains a crucial tool for communication, both personal and professional. PHP developers play a vital role in ensuring that email communications are secure and reliable. This guide will delve into sending emails using PHP, covering single emails, bulk emails, and recurring emails.

Sending a Single Email

To send a single email using PHP, you can utilize the built-in mail() function. Here's an example of how to send an email with the mail() function:

PHP
<?php
$to = "recipient@example.com";
$subject = "Subject of the Email";
$message = "This is the body of the email.";
$headers = "From: sender@example.com";

if (mail($to, $subject, $message, $headers)) {
  echo "Email sent successfully!";
} else {
  echo "Failed to send email.";
}
?>

Sending Bulk Emails

For sending bulk emails, you can employ a dedicated email sending library like PHPMailer. PHPMailer provides a robust and feature-rich framework for handling bulk email campaigns.

PHP
<?php
require 'PHPMailer/PHPMailerAutoload.php';

$mail = new PHPMailer;

$mail->isSMTP(); // Set mailer to use SMTP
$mail->Host = "smtp.example.com"; // Specify the SMTP server
$mail->SMTPAuth = true; // Enable SMTP authentication
$mail->Username = "username"; // SMTP username
$mail->Password = "password"; // SMTP password
$mail->SMTPSecure = "tls"; // Enable TLS encryption $mail->setFrom("sender@example.com", "Sender Name"); $mail->addAddress("recipient1@example.com", "Recipient 1 Name"); $mail->addAddress("recipient2@example.com", "Recipient 2 Name"); $mail->Subject = "Subject of the Bulk Email"; $mail->Body = "This is the body of the bulk email."; if ($mail->send()) { echo "Bulk email sent successfully!"; } else { echo "Failed to send bulk email."; } ?>

Sending Recurring Emails

To send recurring emails, you can schedule email sending tasks using cron jobs. Cron jobs allow you to execute scripts at specific times or intervals.

PHP
<?php
// Send reminder email
$to = "recipient@example.com";
$subject = "Reminder: Important Task";
$message = "This is a reminder to complete the important task.";
$headers = "From: sender@example.com";

mail($to, $subject, $message, $headers);
?>

Create a cron job to execute this script daily at 9:00 AM:

0 9 * * * php ~/sendReminderEmail.php

This cron job will run the sendReminderEmail.php script daily at 9:00 AM, sending the reminder email to the specified recipient.

Comments