我有这个bash脚本,如果它在crontab上运行已更改,则会向我的电子邮件发送新的IP地址。
SUBJ="My new IP is "
EMAIL="myemail@gmail.com"
ip1=""
ip2=""
read ip1 < ip.txt
ip2=$(wget -qO- ifconfig.me/ip)
if [ "$ip1" = "$ip2" ]
then
exit
else
echo "$ip2" > ip.txt
echo "$ip2" | mail -s "$SUBJ""$ip2" $EMAIL
exit
fi
问题是,如果由于任何原因无法发送电子邮件,ip.text
文件仍会更改,下次脚本运行"$ip1" = "$ip2"
将成立,并且永远不会发送电子邮件
如何检查邮件是否已成功发送?
我关注this tutorial:
答案 0 :(得分:0)
如果您只想确保mail
程序成功运行,请使用
echo "$ip2" | mail -s "$SUBJ $ip2" && echo "$ip2" > ip.txt
如果您在mail
将邮件发送到您当地的邮件传输代理后,确实关心邮件已成功传送,那么您无能为力。