0

我正在做这样的事情:

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
4

2 回答 2

5

您应该定义“发送”对您意味着什么。“邮件”的返回状态仅指定邮件是否被本地 MTA 接受。

仍有许多事情可能会阻止交付给最终收件人。从本地计算机上没有网络连接开始,到收件人在他/她的收件箱中忽略您的邮件结束。

邮件传递是异步的。有一些机制可以请求交付和阅读回执,但这些机制很少起作用。处理未送达报告可能会更好。但是,所有这些都可能需要任意时间才能到达。

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

于 2013-05-04T11:48:57.653 回答
0

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

于 2013-05-05T03:41:45.313 回答