安装 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