Cron 作业邮件更改发件人地址

Cron 作业邮件更改发件人地址

我在我的网站上设置了 cron 作业,它们运行良好,但我的问题是这些 cron 作业以电子邮件形式发送的输出以“发件人名称”作为 Cron Daemon 传递。请问我有什么办法可以将其更改为更个性化的名称。谢谢

来自OP的评论:

运行我的文件的命令行是:

php -q /home/username/public_html/x_y_z.php. 

然后,cron 作业会将文件 (x_y_z_.php) 的输出作为电子邮件发送。

答案1

似乎这方面有很多错误的信息,但有两个选项可以在没有包装脚本的情况下工作。

首先,在某些系统上,您可以MAILFROM像设置一样进行设置MAILTOman 5 crontab将告诉您是否MAILFROM可用。

否则,另一个选择是改变mailname文件

sudo vi /etc/mailname

更改。

答案2

除非您具有 root 访问权限并且知道使用哪个 MTA 发送这些邮件(sendmail、exim、postfix?),否则无法更改 cron 用户的“真实姓名”,并且每个 MTA 都有自己的方式为 unix 用户分配真实姓名(cron 很可能以用户“cron”的身份运行)。

最好的办法是从 PHP 脚本发送邮件,而不是依靠 cron 来执行。

只需对代码进行少量修改即可快速完成此操作:

<?php

ob_start();

/* >>> your existing php code goes there */

$output = ob_get_contents();
ob_end_clean();

/* the text to be mailed is now in variable $output */

mail("[email protected]", "Mail from cron job" , $output, "From: Webmaster <[email protected]>\r\nReply-To: [email protected]");

?>

如果邮件功能在您的 PHP 安装中无法正常工作,您将不得不使用第三方库,例如 PEAR::Mail。

答案3

我必须更改/etc/mail/sendmail.cf/etc/mail/sendmail.mc,因为/etc/mailname没有使用。但它只会更改发件人域,而不会更改用户。

相关内容