4

我可以从 bash 发送邮件,但不能更改 from 文本,它目前显示为“root”。

我希望电子邮件客户端在 from 字段中显示以下文本script on myserver.com (root@myserver.com)

请问我该怎么做?

emailsubject="$scriptname ($scriptver) log at $startdate"

if [ $errorcount > 0 ]; then
    emailsubject="ERRORS($errorcount) - ${emailsubject}"
fi

mail -s "$emailsubject" tobealerted@hotmail.com < $logfile
4

2 回答 2

12

如果您的“邮件”支持它,您可以使用 -a 开关添加自定义标头,如下所示:

mail -s "subject" -a "From: president@whitehouse.gov" ...
于 2014-01-22T11:38:51.833 回答
6

这不是 BASH 问题。这是邮件程序本身的问题。

运行命令man mail并查看命令的选项。它因系统而异。检查允许您设置邮件来自谁或发件人的参数。如果mail没有这样的参数,试试mailx哪个有更多的选项。(看起来您的系统mailx调用了mail.

在我的系统上,我使用mailx而不是,mail我可以使用-r参数来设置发件人地址

mailx -r president@whitehouse.gov -s "Secret Message. For your eyes only" < $file
于 2013-04-11T20:24:41.267 回答