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

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

现在缺少什么?

答案1

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

为什么不直接使用 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管道中某处的命令,则用“此处的文档”替换:

/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

相关内容