【问题标题】:How to log each phpmail() onto a text/log file如何将每个 php mail() 记录到文本/日志文件中
【发布时间】:2019-11-26 15:00:30
【问题描述】:

我想要从我的 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 实现吗?

【问题讨论】:

  • thisthis 有帮助吗?
  • 当然可以。只需要一点工作。只需收集您想要的信息并将其写入文件即可。 当然,数据库会是一个更好的主意,因为文本文件很快就会变得很麻烦
  • 我想这超出了我的编码技能,我看看它非常感谢 x
  • 是否有特殊原因要将数据存储在文件中而不是使用数据库?文件可能需要大量工作。
  • 因为在我的脑海里,我什至不知道数据库可以做。根据我的 javascript 经验,我将使用 CreateTextFile 从 HTML 创建一个文本文件。但是PHP超出了我的能力范围,是时候多谷歌了哈哈

标签: php file email logging


【解决方案1】:

您可以将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);
}

【讨论】:

  • 这是在我的服务器还是本地电脑上创建文本文件?
  • @UrbanOzzy 在服务器上。您可以通过在 url 中插入其路径来通过浏览器查看它。
  • @user2342558 这很好用,但出于某种原因。它正在两次发送我的电子邮件哈哈
  • @UrbanOzzy 可能是您的电子邮件在$webmaster_email 中出现了两次?或者你调用了多少次这个方法?
  • 我有一个 if HTML FORM VALIDATED,否则 { mail();}。我希望我能给你看我的整个剧本
【解决方案2】:

您是否尝试在php.ini 中配置mail.log(自PHP 5.3.0 起可用)?

https://www.php.net/manual/en/mail.configuration.php

mail.log 字符串

将记录所有 mail() 调用的日志文件的路径。日志条目包括脚本的完整路径、行号、To 地址和标题。

【讨论】:

  • 这很适合作为评论。
  • 请不要使用答案来提出澄清问题。
猜你喜欢
  • 2023-03-31
  • 2013-08-13
  • 2019-04-20
  • 1970-01-01
  • 2023-03-22
  • 2019-01-11
  • 2011-06-12
  • 2016-05-31
  • 1970-01-01
相关资源
最近更新 更多