Current Location: Home> Latest Articles> PHP Scheduled Email Tutorial: Easily Automate Email Sending

PHP Scheduled Email Tutorial: Easily Automate Email Sending

M66 2025-10-07

Introduction to PHP Scheduled Email

With the development of the internet, email has become an essential communication tool. In many scenarios, we need to send emails on a schedule, such as reminders or regular reports. PHP, as a powerful backend language, can easily implement scheduled email sending. This article demonstrates how to achieve this using practical examples.

Prepare the PHPMailer Library

Before sending emails, you need to prepare the PHPMailer library. PHPMailer is a powerful and flexible library for sending emails and can be easily integrated into PHP projects.

Create a Scheduled Email Script

<?php
require 'path_to_phpmailer/PHPMailerAutoload.php';

// Create a new PHPMailer instance
$mail = new PHPMailer;

// Configure SMTP server settings
$mail->isSMTP();
$mail->SMTPAuth = true;
$mail->Host = 'smtp.example.com';
$mail->Username = 'your_username';
$mail->Password = 'your_password';
$mail->SMTPSecure = 'tls';
$mail->Port = 587;

// Set sender and recipient
$mail->setFrom('from@example.com', 'Your Name');
$mail->addAddress('to@example.com', 'Recipient Name');

// Set email subject and body
$mail->Subject = 'Scheduled Email Test';
$mail->Body    = 'This is a test email sent on schedule.';

// Set scheduled sending time
$date = new DateTime();
$send_time = $date->add(new DateInterval('PT1H')); // Current time plus 1 hour
$send_time = $send_time->format('Y-m-d H:i:s');

// Schedule email sending
$mail->SendLater($send_time);

// Send email
if(!$mail->Send()) {
    echo 'Sending failed: ' . $mail->ErrorInfo;
} else {
    echo 'Sent successfully!';
}
?>

Script Explanation

In the example, we first include the PHPMailer library and create a PHPMailer instance. Then we configure the SMTP server according to your email settings, including the server address, username, and password.

Next, we set the sender and recipient information, as well as the email subject and body.

After setting the sending time, the $mail->SendLater($send_time) method schedules the email to be sent. In this example, the sending time is set to one hour from the current time.

Finally, we call $mail->Send() to send the email. If successful, it will display 'Sent successfully!'; otherwise, it will show the error message.

Setting Up Scheduled Tasks

Note that scheduled email sending relies on your server's task scheduling feature. Depending on your server environment, you can use Linux crontab or Windows Task Scheduler to run the PHP script periodically.

Conclusion

To implement scheduled email sending in PHP, the main steps are: include the PHPMailer library, configure the SMTP server, set the email content and sending time, and execute the script through a scheduled task. Following these steps allows you to easily automate email delivery.