Linux邮件命令不像以前那样工作

我在我的crontab中使用了以下邮件命令,直到我们上周五重新安装了邮件服务器,

echo "Testing 123" | mail -s "ECS PostDate Processed" "[email protected] [email protected]" -- -r "[email protected]" -F "ServerCronJobs" 

之前的“ – ”会将命令行参数路由到sendmail从名称发送并添加回复地址。 现在看起来 – 被忽略,所有的额外参数被视为电子邮件地址。 所以电子邮件将会:

 from root <[email protected]> to me, chrish, -r, noreply, -F, ServerCronJobs 

现在缺less什么?

您可能在操作系统升级时获得了不同版本的“邮件”命令,并且没有相同的选项。

为什么不直接使用sendmail呢? 这是unix MTA总是模拟的标准化命令,并且适用于脚本使用:

 ( echo "Subject: ECS PostDate Processed" echo "To: [email protected], [email protected]" echo "Reply-To: [email protected]" echo "From: ServerCronJobs <[email protected]>" echo echo "Testing 123" ) | /usr/sbin/sendmail -oi -t 

这可以做( echo ; echo ; echo ) | sendmail ( echo ; echo ; echo ) | sendmail风格,而不是适合一个线路。

或者,如果它只是echo而不是在该pipe道中的某个命令,请用“here document”replace:

 /usr/sbin/sendmail -oi -t <<EOT Subject: ECS PostDate Processed To: [email protected], [email protected] Reply-To: [email protected] From: ServerCronJobs <[email protected]> Testing 123 EOT