3

我正在编写一个 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
4

2 回答 2

5

如果你不需要添加更多的文本,只需要发送 $MSG 的内容,你可以替换

mail -s "$SUBJ" -q "$MSG" "$TO"

mail -s "$SUBJ" "$TO" < "$MSG"

EOT隐含在<构造中。-q确实只是用来启动消息。其余的应该通过标准输入来。

于 2013-11-05T20:55:45.643 回答
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
于 2013-11-05T21:03:41.180 回答