Maison >développement back-end >tutoriel php >PHP et PHPMAILER : Comment implémenter la fonction de journal d'envoi d'e-mails dans le site Web ?
PHP et PHPMAILER : Comment implémenter la fonction de journal d'envoi d'e-mails dans le site Web ?
Présentation :
Lors du développement d'un site Web, la fonction d'envoi d'e-mails est indispensable. Cependant, lorsqu'un site Web doit envoyer un grand nombre d'e-mails ou doit suivre et enregistrer la livraison des e-mails, nous devons souvent mettre en œuvre une fonction de journal d'envoi d'e-mails pour afficher des informations telles que les e-mails envoyés avec succès et ceux qui ont échoué. Cet article explique comment utiliser PHP et la bibliothèque PHPMailer pour implémenter la fonction de journal d'envoi d'e-mails et fournit des exemples de code correspondants.
require 'path/to/PHPMailer/src/PHPMailer.php'; require 'path/to/PHPMailer/src/SMTP.php'; require 'path/to/PHPMailer/src/Exception.php';
CREATE TABLE `email_logs` ( `id` int(11) NOT NULL AUTO_INCREMENT, `to_email` varchar(255) NOT NULL, `subject` varchar(255) NOT NULL, `message` text NOT NULL, `sent` tinyint(1) NOT NULL DEFAULT '0', `sent_date` datetime DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
function sendEmail($to, $subject, $message) { // 实例化PHPMailer对象 $mail = new PHPMailerPHPMailerPHPMailer(); // 配置SMTP服务器 $mail->isSMTP(); $mail->Host = 'smtp.example.com'; $mail->SMTPAuth = true; $mail->Username = 'your_email@example.com'; $mail->Password = 'your_password'; $mail->SMTPSecure = 'ssl'; $mail->Port = 465; // 设置邮件内容和收件人 $mail->CharSet = 'UTF-8'; $mail->setFrom('your_email@example.com', 'Your Name'); $mail->addAddress($to); $mail->Subject = $subject; $mail->Body = $message; // 发送邮件 if ($mail->send()) { // 邮件发送成功,将发送日志保存到数据库中 $sent_date = date('Y-m-d H:i:s'); $insert_query = "INSERT INTO email_logs (to_email, subject, message, sent, sent_date) VALUES ('$to', '$subject', '$message', 1, '$sent_date')"; // 执行插入操作并检查是否成功 if ($conn->query($insert_query) === TRUE) { echo "邮件发送成功!"; } else { echo "邮件发送成功,但保存发送日志失败:" . $conn->error; } } else { echo "邮件发送失败:" . $mail->ErrorInfo; } }
$to = 'recipient@example.com'; $subject = '邮件主题'; $message = '邮件正文'; sendEmail($to, $subject, $message);
$select_query = "SELECT * FROM email_logs"; $result = $conn->query($select_query); if ($result->num_rows > 0) { while ($row = $result->fetch_assoc()) { echo "收件人:" . $row['to_email'] . "<br>"; echo "主题:" . $row['subject'] . "<br>"; echo "内容:" . $row['message'] . "<br>"; echo "发送时间:" . $row['sent_date'] . "<br>"; echo "<br>"; } } else { echo "没有邮件发送日志。"; } $conn->close();
Résumé :
En utilisant PHP et la bibliothèque PHPMailer, nous pouvons implémenter une simple fonction de journal d'envoi d'e-mails pour enregistrer et suivre l'état de l'envoi d'e-mails sur le site Web. Cet article fournit les étapes pour installer et présenter la bibliothèque PHPMailer, ainsi que comment créer une table de journal d'envoi d'e-mails et écrire une fonction d'envoi d'e-mails. J'espère que cet article vous sera utile lors de la mise en œuvre de la fonction de journal d'envoi d'e-mails.
Remarque : dans les applications réelles, vous devez ajuster le code en fonction de vos propres besoins et vous assurer que les opérations telles que les connexions à la base de données et les requêtes peuvent s'exécuter normalement.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!