嗨,在企业环境中,我们需要同时向许多客户发送 smtp 电子邮件。电子邮件发送请求来自前端,并一路返回 ESB 发送电子邮件。
现在我们需要将响应发送回前端,告知电子邮件已发送。所以想知道 smtp 服务器是如何将响应发送回的,是在将消息放入队列之后还是在将消息传递给客户端之后?
这个问题对于实际上还没有到过这一点的人来说可能看起来有点奇怪。但是,如果有人已经到了这一点并找到了解决方案,我将非常感激知道这一点。
SMTP 是一种存储和转发协议。一般来说,SMTP 服务器所做的只是说明它是否接受了要传递的消息。但它并没有说明消息是否真的被传递。至少,在 SMTP 客户端连接到服务器时不会。
大多数服务器将尝试传递消息并在传递延迟或传递失败时通知发件人(通过电子邮件)。据我了解,他们不需要这样做。而且我不知道有任何服务器在正常业务过程中会在消息成功传递时通知您。“没有消息就是好消息”,这是 SMTP 的典型情况。
这很像寄信。您将一个信封放入邮箱中,并希望它能够到达目的地。如果这封信无法送达,它(通常)会退回给您。但除非您要求回执,否则您永远不知道信封是否到达目的地……或何时到达。
说到回执,请记住发送它们是由收件人自行决定的。邮件客户端可以选择不发送回执。