【发布时间】:2014-03-27 05:52:27
【问题描述】:
我正在构建一个 Web 应用程序,其中用户单击一个按钮,该单击会发送一封电子邮件。在不稳定的连接上,有时用户会多次单击该按钮,这会导致发送多封电子邮件。电子邮件正在通过 Sendgrid 通过 SMTP 发送。
如果多次提交相同的请求参数,是否有一种技术可用于仅发送一封电子邮件?我知道如何防止在我自己的应用程序中多次提交网络表单之类的内容,但我不确定如何使用 3rd 方电子邮件 API 做同样的事情。
【问题讨论】:
我正在构建一个 Web 应用程序,其中用户单击一个按钮,该单击会发送一封电子邮件。在不稳定的连接上,有时用户会多次单击该按钮,这会导致发送多封电子邮件。电子邮件正在通过 Sendgrid 通过 SMTP 发送。
如果多次提交相同的请求参数,是否有一种技术可用于仅发送一封电子邮件?我知道如何防止在我自己的应用程序中多次提交网络表单之类的内容,但我不确定如何使用 3rd 方电子邮件 API 做同样的事情。
【问题讨论】:
如果您使用的是 Mailjet,则可以使用 X-Mailjet-DeduplicateCampaign 标头,这将阻止/取消阻止在一个活动中多次向同一联系人发送的消息。
【讨论】:
为了防止多次提交到 SendGrid(或大多数 API),您需要在您的终端设置一些东西来存储每个提交并确保尚未发送相同的内容。
如果您只是想防止同一用户多次提交相同的数据,您可以将最近提交的哈希值存储在内存中并进行比较或类似的东西。
但是,最好的选择可能只是在客户端做一些事情来阻止用户点击按钮两次。
【讨论】: