Email Reminder для списка пользователей - PHPMAILER, PDO, CRON?

Ищу помощь / совет... у меня есть список заказов в базе данных sql, я хочу отправить напоминание по электронной почте всем пользователям с их деталями внутри.

В настоящее время я использую PHPMAILER, который отправляет письма с подтверждением / обновлением, когда что-то меняется на индивидуальной основе.

я читал что CRON это лучший вариант? Я хочу, чтобы скрипт прочитал идентификатор бронирования - получите адрес электронной почты и напишите пользователю напоминание с указанием его данных.

ниже шаблон, который у меня есть...

Функция PDO/SQL:

// Booking Reminder
    function reminder24($from_record_num, $records_per_page){

    $query = "SELECT
                id, status, location, booking_date, booking_time, cust_name, cust_email
            FROM
                " . $this->table_name . " WHERE status = 'Confirmed'
            ORDER BY
                id DESC
            LIMIT
                {$from_record_num}, {$records_per_page}";

    $stmt = $this->conn->prepare( $query );
    $stmt->execute();

    return $stmt;
}

PHPMAILER SCRIPT:

<?php 
// include database and object files
include_once '../../config/database.php';
include_once '../../objects/bookings.php';

// get database connection
$database = new Database();
$db = $database->getConnection();

// prepare objects
$bookings = new Bookings($db);

// read the details of Appointment to be read
$bookings->reminder24();

// include the required mailer scripts
require 'phpmailer/src/Exception.php';
require 'phpmailer/src/PHPMailer.php';
require 'phpmailer/src/SMTP.php';

?>

<?php

/* Create a new PHPMailer object. Passing TRUE to the constructor enables exceptions. */
$mail = new PHPMailer\PHPMailer\PHPMailer(true);

/* Open the try/catch block. */
try {
   /* Set the mail sender. */
   $mail->setFrom('sender@example.com', 'Sender Name');

   /* Add a recipient. */
   $mail->addAddress(' '. $bookings->cust_email .' ');

   /* Set the subject. */
   $mail->Subject = 'Appointment Reminder - '. $bookings->booking_date .' ';

$mail->isHTML(true);
   /* Set the mail message body. */
   $mail->Body = '<center><h1>Appointment Reminder</h1>
Hi '. $bookings->cust_name .',
<br><br>
Just a reminder about your appointment with  
<b><span style="color:#ea00ff">(Person Name)</span></b> at 
<b><span style="color:#ea00ff">'. $bookings->location .' </span></b> on 
<b><span style="color:#ea00ff">'. $bookings->booking_date .'</span></b> @ 
<b><span style="color:#ea00ff">'. $bookings->booking_time .'</span></b>.
The contact details you have provided are <b>email: '. $bookings->cust_email .'</b> & <b>Phone: '. $bookings->cust_phone .'</b>
<br>
</center>
';

   /* Finally send the mail. */
   $mail->send();
}
catch (Exception $e)
{
   /* PHPMailer exception. */
   echo $e->errorMessage();
}
catch (\Exception $e)
{
   /* PHP exception (note the backslash to select the global namespace Exception class). */
   echo $e->getMessage();
}

?>

0 ответов

Другие вопросы по тегам