【问题标题】:PHP mail - wrong sender (from:)PHP 邮件 - 发件人错误(来自:)
【发布时间】:2014-01-13 18:20:34
【问题描述】:

我有一个通过 cron 运行的文件。向用户发送电子邮件的文件。

但是有一个问题,问题是当我通过浏览器打开文件时,用于读取邮件的 PHP 参数正确设置了正确的发件人,我在 From:

当文件被 cron 执行时,sender 被忽略,以 Linux 用户名和主机名作为 sender。

$headers  = "";
$headers .= "MIME-Version: 1.0" . "\n";
$headers .= "Content-type: text/html; charset=utf-8" . "\n";
$headers .= "Content-Transfer-Encoding: 8bit". "\n";
$headers .= "Date: ".date("r"). "\n"; 
$headers .= "To: ". $users. "\n";
$headers .= "From: Somthing <no-reply@mydomain.com>" . "\n";

mail($to, "Remainder 1", "Message body", $headers);

Cron 设置是这样的

/usr/local/bin/php -q /home/user/cron.php

【问题讨论】:

  • 可能是因为 cron 是通过 root 运行的。
  • 用户可以运行cron吗?
  • 是的,先crontab -u user 然后-l(列表)或-e(编辑)
  • Somthing 从您的配置中复制和粘贴,还是您为 SO 更改了这个?

标签: php email cron


【解决方案1】:

如果您像这样使用“/usr/local/bin/php -q /home/user/cron.php”,您将尝试从与从浏览器运行脚本不同的位置执行脚本。

如果您包含具有相对路径的脚本,它们将 100% 失败。

像这样使用并试一试:'cd /home/user/; /usr/local/bin/php -q /home/user/cron.php' 这样你就可以从它的位置运行脚本了。

【讨论】:

  • 是的,尝试使用 cd /path/ 不起作用。仍然发件人出现在消息源中。
  • @Alan 尝试使用 SMTP 发送电子邮件。
【解决方案2】:

我从不建议像您那样使用 cron 运行 PHP 脚本。 原因是 PHP 的配置几乎总是与通过 Apache 运行时不同(使用不同的 php.ini 特定设置)。

我推荐的方式是通过 wget。一步一步,你必须这样做:

  1. cron.php 上传到您网站的文件夹中,或在同一服务器上可访问的某个位置,但在它自己的文件夹中。我们就叫它cron-jobs
  2. 通过访问 http://www.yoursite.com/cron-jobs/cron.php 确保它可以通过 Internet 运行
  3. 如果您使用的是 Apache,请创建一个带有规则的 .htaccess 文件

    Order Deny, Allow
    Allow from 127.0.0.1
    Deny from all
    
  4. 再次测试以确保您没有收到任何与 htaccess 规则相关的 500 错误。此规则确保除了服务器本身之外,没有其他人可以运行该脚本。

  5. 现在修改 cron 任务以像这样运行脚本

    wget -q http://www.yoursite.com/cron-jobs/cron.php

您现在应该会看到正确的 From: 字段。

【讨论】:

  • 你说得对,它适用于 wget。我不使用 wget 的原因是如果 Apache 删掉脚本将不会再次运行。如果您有较大的文件并进行主要进程,则此解决方案不安全。如果我错了,请纠正我。
  • 通常这取决于脚本的作用,但通常 Apache 不应该剪切脚本。 PHP 可能,这就是为什么你应该在你的 PHP 脚本中使用 set_time_limit(0);ini_set('max_execution_time', 0); 如果你知道它运行时间很长的话。同样,Apache 在正常情况下不会停止您的脚本。
猜你喜欢
  • 2015-05-27
  • 1970-01-01
  • 2015-08-05
  • 2010-10-18
  • 1970-01-01
  • 1970-01-01
  • 2022-08-17
  • 2021-06-05
  • 2015-09-14
相关资源
最近更新 更多