我想使用sendmail向我发送内容,并希望在oneliner中进行。
echo "mail content" | sendmail emailataddres.com
发送时不带主题。
主题行必须位于Mail内容之前,因此我正在寻找类似于以下内容的内容:
echo "mail content" | prepend "Subject: All that matters" | sendmail emailataddres.com
sed和awk使用和记忆起来确实很笨拙。
编辑:只是要澄清:回显“邮件内容”只是一个说明性的示例。我需要能够将东西添加到任何来源的stdout流中。例如:ifconfig,zcat等。
好吧,如果您将此添加为答案,我可能会接受... :)
—
AndreasT 2012年
啊,不,我不,对不起。请考虑我的编辑。
—
AndreasT
应该
—
allquixotic
prepend
怎么办?为了知道如何添加某些内容,您必须等到上游命令(例如echo
)发送EOF 为止,以便您可以在将数据传递到stdout之前将其插入流中,然后再将其传递给sendmail。听起来像是一个矮小的Ruby或Python脚本的任务。
稍微不同的方法是使用
—
Wim Lewis
mail
命令(有时称为bsdmail)而不是sendmail
直接使用。mail
采取可选-s subject
选项,例如: ifconfig -a | mail -s 'Current ifconfig output' me@someaddr.com
echo -e "Subject: All that matters\nmail content"
?或与平台无关的其他:printf 'Subject: %s\n%s\n' "All that matters" "mail content"
。您还可以编写一个小的脚本,该脚本仅使用两个字符串参数来制作更简单的单行代码。