php - 如何将每个 phpmail() 记录到文本/日志文件中
问题描述
我想要从我的 HTML 在线表单发送的每封电子邮件的副本,以在我的服务器根文件路径中创建一个日志文件,每个 phpmail() 都发送该日志文件,并将其添加到日志文件中。
我正在使用当前的 php post 文件。有什么方法可以做到吗?
<?php
$webmaster_email = ("myemail@domain.co.uk");
$email_address = $_REQUEST['email'] ;
$comments = $_REQUEST['comment'] ;
$telephone = $_REQUEST['telephone'] ;
$first_name = $_REQUEST['name'] ;
$msg =
"Name: " . $first_name . "\r\n" .
"Email: " . $email_address . "\r\n" . "\r\n" .
"Phone No: " . $telephone . "\r\n" . "\r\n" .
"Comments: " . $comments ;
mail( "$webmaster_email", "Contact Form Results", $msg );
?>
所以基本上所有的请求语句和当前时间/日期都到一个日志文件中,这甚至可以用 php 实现吗?
解决方案
您可以将mail
结果和其他信息直接记录在用作日志的文件中:
if(mail( "$webmaster_email", "Contact Form Results", $msg ))
{
// email sent
logMail("$webmaster_email", "Contact Form Results", 1);
}
else
{
// email failed
logMail("$webmaster_email", "Contact Form Results", 0);
}
function logMail($email, $subject, $success=1)
{
$pathLog = 'logMail.txt';
$logContent = file_get_contents($pathLog);
$logContent .= date('Y-m-d H:i:s');
$logContent .= "\t";
$logContent .= "Email ".($success ? 'sent' : 'FAILED!')."\n";
$logContent .= "To: $email\n";
$logContent .= "Subject: $subject\n";
$logContent .= "\n\n";
file_put_contents($pathLog, $logContent);
}
推荐阅读
- javascript - ajax 不发送变量,发送未定义
- javascript - AngularJS 中的 Session 或 LocalStorage CRUD 表
- apache-spark - Spark:驱动内存参数的使用
- python - 无法在 macOS High Sierra 上通过 pip 安装 pyaudio
- python - 使用 < 从标准输入读取文本文件
- r - 清除除一个变量之外的所有内容 rm(list = ls())
- python - 如何将数据框中的所有单元格除以特定列同一行上的单元格?
- android - Android 可折叠通知额外填充
- python - Python 等效于 NodeJS AES 256 CTR 算法
- javascript - Jquery在按住退格键时不删除类