验证邮件状态Bash脚本

时间:2013-05-04 10:33:59

标签: linux bash email sendmail

我做这样的事情:

echo "TEST MAIL" | mail -s "subject" "SOME@MAIL.COM"

发送好了!但我必须在shell脚本中验证邮件是否已发送。

我找不到某种方法来验证邮件是否已发送。

编辑:

我唯一的验证是邮件应用程序中的返回值是否为0

if [ "$?" = "0" ]; then
    echo "Mail enviado a: $destinatarios"

else
    echo "Mail NO enviado a: $destinatarios"
fi

2 个答案:

答案 0 :(得分:5)

您应该定义“已发送”对您来说意味着什么。 “mail”的返回状态指定 只有当本地MTA接受该消息时才会被接收。

仍有许多事情可能会阻止交付到决赛 接受者。从本地没有网络连接开始 机器并以收件人在他/她中忽略您的信息结束 收件箱中。

邮件传递是异步的。有一些请求交付的机制 并阅读很少有效的收据。你可能有更好的运气处理 未送达报告。但是,所有这些都可能需要任意时间才能到达。

就此而言,我会说“邮件”的零退出状态同样好 您可以合理地获得成功发送的消息的指示 努力。

答案 1 :(得分:0)

如果您向应用程序内部发送电子邮件,则可以修改目标应用程序 为“回复” 否则我记得没有简单的方法.....