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 중국어 웹사이트의 기타 관련 기사를 참조하세요!