Для отправки почты с использованием PHPMailer и данных из базы данных MySQL вам потребуется несколько шагов:
1. Установка и подключение PHPMailer:
Начните с установки PHPMailer. Вы можете сделать это, добавив зависимость в ваш файл composer.json и выполнив composer install
, или просто загрузив файлы PHPMailer из официального репозитория (https://github.com/PHPMailer/PHPMailer) и подключив их к вашему проекту.
После установки вы должны подключить файлы PHPMailer в вашем PHP-скрипте:
require 'path_to_phpmailer/PHPMailer.php'; require 'path_to_phpmailer/SMTP.php';
2. Установка соединения с базой данных:
Откройте соединение с вашей базой данных, используя функцию mysqli_connect
или другую аналогичную функцию, которая поддерживает ваши требования.
$connection = mysqli_connect('host', 'username', 'password', 'database'); if (!$connection) { die('Не удалось подключиться к базе данных: ' . mysqli_connect_error()); }
3. Получение данных из базы данных:
Напишите запрос к базе данных для получения необходимых данных, которые вы хотите включить в свое письмо.
$query = "SELECT email, name FROM users"; $result = mysqli_query($connection, $query); if (!$result) { die('Ошибка выполнения запроса: ' . mysqli_error($connection)); }
4. Отправка писем с использованием PHPMailer:
Создайте объект PHPMailer и настройте его параметры, такие как SMTP-сервер, логин, пароль и т. д. Далее, в цикле переберите результаты запроса базы данных и отправьте письма для каждого получателя.
$mail = new PHPMailerPHPMailerPHPMailer(); $mail->isSMTP(); $mail->Host = 'smtp.example.com'; $mail->SMTPAuth = true; $mail->Username = 'your_username'; $mail->Password = 'your_password'; $mail->SMTPSecure = 'tls'; $mail->Port = 587; while ($row = mysqli_fetch_assoc($result)) { $mail->setFrom('[email protected]', 'Your Name'); $mail->addAddress($row['email'], $row['name']); $mail->Subject = 'Test Email'; $mail->Body = 'This is a test email sent using PHPMailer.'; $mail->send(); $mail->ClearAddresses(); }
Обратите внимание, что код выше выполняет отправку писем только для адресов электронной почты, полученных из базы данных. Вам, возможно, потребуется настроить дополнительные параметры ваших писем, такие как файлы вложений, HTML-формат, переменные из базы данных и т. д.
5. Закрытие соединения с базой данных:
После завершения работы с базой данных не забудьте закрыть соединение.
mysqli_close($connection);
Теперь вы должны быть в состоянии успешно отправлять письма с использованием PHPMailer, используя данные, полученные из базы данных MySQL.