Echo 文件与 mailutils 发生冲突

Echo 文件与 mailutils 发生冲突

安装 ssmtp 后邮件工具,使用“echo”写入文件会尝试向我发送一封电子邮件至 username@hostname。例如:

使用 mailutils 发送邮件:

echo "Body text here." | mail -s "Subject text here." [email protected]

我使用: echo "log content" > logfile.txt 将内容写入日志文件。

问题是,当我想写入日志文件时,我收到一封来自 Gmail 的可发送电子邮件,提示用户名@主机名无法访问,这意味着它会干扰 mailutils。

这是 mailutils 的一个已知问题,需要解决方法或修复,我该如何解决它?

答案1

你在做这样的事情吗?

echo "log content" > logfile.txt | mail -s "Subject text" [email protected]

如果是这样,难怪它不起作用 - 你已经将echo的输出重定向到一个文件,如果不mail使用像tee.

tee的全部目的是(来自手册页):

tee - 从标准输入读取并写入标准输出和文件

注意:如果您想追加logfile.txt而不是完全覆盖它,请使用tee -a logfile.txt.看man tee

因此,要保存到日志文件并通过管道传输到邮件,请尝试以下操作:

echo "log content" | tee logfile.txt | mail -s "Subject text" [email protected]

或者,您可以重定向到日志文件,然后使用将 的 stdin<重定向mail为日志文件,如下所示:

echo "log content" > logfile.txt
mail -s "Subject text" [email protected] < logfile.txt

相关内容