我正在编写一个bash脚本来自动向我发送电子邮件。 Mailx需要一个EOT或^ D信号来知道消息体已经结束并且它可以发送。 当我运行脚本时,我不想在键盘上按^ D.
这是我的代码:
#! /bin/bash
SUBJ="Testing"
TO="test@test.com"
MSG="message.txt"
echo "I am emailing you" >> $MSG
echo "Time: `date` " >> $MSG
mail -s "$SUBJ" -q "$MSG" "$TO"
rm -f message.txt
答案 0 :(得分:5)
如果您不需要添加更多文字而只需要发送$ MSG的内容,则可以替换
mail -s "$SUBJ" -q "$MSG" "$TO"
与
mail -s "$SUBJ" "$TO" < "$MSG"
EOT
将隐含在<
构造中。 -q
确实只用于启动消息。其余的应该是通过stdin。
答案 1 :(得分:2)
将命令组的输出传递给mail
。
#! /bin/bash
SUBJ="Testing"
TO="test@test.com"
MSG="message.txt"
{
echo "I am emailing you"
echo "Time: `date` "
} | mail -s "$SUBJ" -q "$MGS" "$TO"
rm -f message.txt