在bash邮件中设置发件人地址文本

4
我可以在bash中发送邮件,但无法更改发件人名称,目前显示为“root”。
我希望电子邮件客户端在发件人字段中显示以下文本:`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

1
[ $errorcount > 0 ] 应该改为 [ $errorcount -gt 0 ](参见 man test)。 - Adrian Frühwirth
2个回答

13
如果您的“邮件”支持,您可以使用-a开关添加自定义头信息,例如:
mail -s "subject" -a "From: president@whitehouse.gov" ...

-a file Attach the given file to the message. - Nick
2
在我的 Debian 上,实际上是这样的:-a, --append=HEADER: VALUE-A, --attach=FILE - berliner

6

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

运行命令man mail并查看该命令的选项。它因系统而异。检查是否有参数可以设置邮件的发件人或发送者。如果mail没有这样的参数,请尝试使用更多选项的mailx。(看起来您的系统将mailx称为mail。)

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

mailx -r president@whitehouse.gov -s "Secret Message. For your eyes only" < $file

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接