【问题标题】:how to trigger if email delivered?如果电子邮件已发送,如何触发?
【发布时间】:2017-02-01 09:02:57
【问题描述】:

我使用 laravel 框架进行用户注册之后,用户应该通过点击发送到他的电子邮件的链接来激活他的帐户, 此方案适用于所有有效且可用的邮箱。 但有时当用户错误地键入他的电子邮件时,系统会将电子邮件触发到不存在的电子邮件并返回失败消息“向以下收件人发送失败”。在这种情况下,他无法登录并且无法重置或与系统交互,避免这种情况的最佳做法是什么?

【问题讨论】:

  • 您将无法直接使用 PHP 进行检查。如果您使用的是提供 API 的邮件服务(例如 Mailgun),则可以使用它来检查送达率。
  • 我使用 Mailgun 并且遇到了其他问题,例如阻止某些提供商(如 hotmail)的 IP 地址。
  • 就像@aynber 推荐的那样,您需要第三方服务。 Mailgun 非常好,最多可以免费发送 10,000 封电子邮件。如果您的邮件没有发送到 Hotmail,您应该查看故障排除 - Mailguns 文档说 Hotmail 需要某些标题以及取消订阅链接,否则它们将被阻止。 documentation.mailgun.com/…
  • 我在使用 Mailgun 时也遇到过类似的问题,但我的意思是使用带有 API 的邮件服务,该 API 允许您检查电子邮件的送达状态。

标签: php laravel smtp


【解决方案1】:

请使用 laravel 队列。请使用第三方网站,如https://aws.amazon.com/sqs/

【讨论】:

  • 排队和这些平台都与问题无关
  • 问题不是发送已发送的电子邮件,而是发送队列
【解决方案2】:

最佳做法是允许用户登录并允许他更改电子邮件或重新发送激活链接并阻止他访问其他内容。

【讨论】:

    猜你喜欢
    • 2019-01-09
    • 2012-08-13
    • 2011-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-20
    • 1970-01-01
    • 2011-08-09
    相关资源
    最近更新 更多