PHP和PHPMAILER:如何在網站中實作郵件傳送日誌功能?
概述:
在開發一個網站時,郵件發送功能是不可或缺的。然而,當網站需要發送大量郵件或需要對郵件發送進行追蹤和記錄時,我們常常需要實現一個郵件發送日誌功能,以便查看哪些郵件成功發送,哪些失敗了等資訊。本文將介紹如何使用PHP和PHPMailer庫實作郵件傳送日誌功能,並提供對應的程式碼範例。
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();
總結:
透過使用PHP和PHPMailer庫,我們可以實作一個簡單的郵件發送日誌功能,在網站中記錄和追蹤郵件發送的狀態。本文提供了安裝和引入PHPMailer庫的步驟,以及如何建立郵件發送日誌表和編寫發送郵件的函數。希望這篇文章對你在實現郵件發送日誌功能時能有所幫助。
注意:在實際應用中,你需要根據自己的需求來調整程式碼,並確保資料庫連線和查詢等操作能正常運作。
以上是PHP和PHPMAILER:如何在網站中實現郵件發送日誌功能?的詳細內容。更多資訊請關注PHP中文網其他相關文章!