检查邮件是否已成功发送到bash

时间:2016-09-22 18:07:25

标签: bash email

我有这个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

1 个答案:

答案 0 :(得分:0)

如果您只想确保mail程序成功运行,请使用

echo "$ip2" | mail -s "$SUBJ $ip2" && echo "$ip2" > ip.txt

如果您在mail将邮件发送到您当地的邮件传输代理后,确实关心邮件已成功传送,那么您无能为力。