ホームページ >バックエンド開発 >PHPチュートリアル >PHP と PHPMAILER: Web サイトにメール送信ログ機能を実装するにはどうすればよいですか?
PHP と PHPMAILER: Web サイトにメール送信ログ機能を実装するにはどうすればよいですか?
概要:
Webサイトを構築する際、メール送信機能は欠かせません。ただし、Web サイトで大量の電子メールを送信する必要がある場合、または電子メール配信を追跡および記録する必要がある場合、どの電子メールが正常に送信され、どの電子メールが送信に失敗したかなどの情報を表示するために、電子メール送信ログ機能を実装する必要があることがよくあります。この記事では、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 ライブラリを使用すると、簡単なメール送信ログ関数を実装して、メール送信のステータスを記録および追跡できます。 Webサイト。この記事では、PHPMailer ライブラリをインストールおよび導入する手順と、メール送信ログ テーブルの作成方法およびメール送信関数の作成方法について説明します。この記事がメール送信ログ機能を導入する際の参考になれば幸いです。
以上がPHP と PHPMAILER: Web サイトにメール送信ログ機能を実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。