运行命令并使用 msmtp 通过电子邮件发送输出(带有主题)

运行命令并使用 msmtp 通过电子邮件发送输出(带有主题)

我有OpenWRT路由器,安装了msmtp。我想编写一个命令行(或 .sh 文件)来向我发送当前的公共 IP 地址,并让 Cron 每 15 分钟执行一次。

我找到了这个帖子: 运行命令并通过电子邮件发送输出

并尝试对 msmtp 执行相同的操作,它确实有效:我执行了以下操作

kdig +short myip.opendns.com @resolver1.opendns.com |邮件传输协议 [电子邮件受保护]

并收到一封包含当前公共 IP 地址的电子邮件,但当然没有主题,因为我没有设置任何内容。现在,对于 msmtp,放置主题的方法是

echo "主题:当前公共 IP" | msmtp[电子邮件受保护]

但我不知道如何将这两件事结合起来......我将非常感谢您的帮助!

答案1

我不能将这种方法归功于自己。我在其他地方看到过它,但是这个小片段可以通过检查参数并以更灵活的方式添加它们来改进,但它应该传达这个概念:

kdig +short myip.opendns.com @resolver1.opendns.com |{
    SUBJ="A Subject"
    echo "From: \"name\"<[email protected]>"
    echo "To: \"me\"<[email protected]>"
    echo "Subject: ${SUBJ}"
    # Now repeat what was piped in 
    cat /dev/fd/0
} | msmtp [email protected]

相关内容