我有一个用户注册帐户的网站。我有一个内部通信系统,当他们收到私人消息时会向他们发送电子邮件。我不强迫人们确认他们的电子邮件,所以很自然地,许多人输入了一个假地址。
当他们收到 PM 时,它会尝试向他们发送一封电子邮件,但显然失败了,因此它不断地重试和重试。几周后,重试队列变得相当大,它会影响服务器性能(我也不想因为所有这些尝试而被列入黑名单)。
我能做些什么来解决这个问题(除了强迫人们在注册时确认他们的电子邮件)。
我有一个用户注册帐户的网站。我有一个内部通信系统,当他们收到私人消息时会向他们发送电子邮件。我不强迫人们确认他们的电子邮件,所以很自然地,许多人输入了一个假地址。
当他们收到 PM 时,它会尝试向他们发送一封电子邮件,但显然失败了,因此它不断地重试和重试。几周后,重试队列变得相当大,它会影响服务器性能(我也不想因为所有这些尝试而被列入黑名单)。
我能做些什么来解决这个问题(除了强迫人们在注册时确认他们的电子邮件)。
如果您不想强迫人们确认他们的电子邮件,因为如果出现问题,他们无法立即访问他们的登录信息,为什么不这样做:
如果他们没有确认他们的电子邮件,请不要发送 PM,而是在他们登录时显示它们。提醒他们确认他们的电子邮件。
如果他们已确认电子邮件,请将其发送出去。
但无论如何,您的情况听起来像是服务器配置错误。为什么邮件服务器会不断重新发送收到“不可投递”消息的邮件?据我所知,仅当由于技术原因无法访问接收主机时才会重新发送邮件。
你真的应该只需要确认。
除此之外,您可以停用电子邮件已退回一定次数的用户,并在下次登录时要求新电子邮件。
如果不进行验证将很难,但您至少可以验证它来自的域:
选项 1:使用getmxrr在其主机名上搜索 MX 记录
选项 2:使用checkndsrr检查他们的 DNS 信息
但所有这些真正做的是检查域的有效性,以及它是否正在运行邮件服务器。要获得真正的身份验证,确认是最好的方法。您还可以实现一个工具来发送测试电子邮件,并查看它是否会退回。但是这种方法可能并不总是像预期的那样工作,因为变化,一些服务器是即时的,另一些可能是一天后返回无法送达的电子邮件。
我希望这有帮助。
考虑设置一个复选框,以便人们可以选择退出电子邮件通知。如果他们没有输入有效的电子邮件地址,那肯定是因为他们一开始就不想接收电子邮件,所以让他们告诉你。
此外,您可以考虑拥有一个选择加入系统,人们首先不会收到电子邮件通知,并且必须在他们的帐户设置中的某处启用它,此时提供一个电子邮件地址。这样,虚假电子邮件地址的数量将减少到接近于零。