如何清除坏电子邮件(在PHP中)?

时间:2009-11-22 09:46:50

标签: php email-validation

我有一个用户注册帐户的网站。我有一个内部通信系统,当他们收到私人消息时会向他们发送电子邮件。我不强迫人们确认他们的电子邮件,很自然地,许多人输入了假地址。

当他们获得PM时,它会尝试向他们发送电子邮件,但显然会失败,因此它会继续重试并重试。几周后,重试队列变得非常大,它会影响服务器性能(我也不想因为所有这些尝试而被列入黑名单)。

我可以做些什么来解决这个问题(除了强迫人们在注册时确认他们的电子邮件)。

4 个答案:

答案 0 :(得分:3)

如果您不想强迫别人确认他们的电子邮件,因为如果出现问题,他们无法立即访问他们的登录信息,为什么不这样做:

  • 如果他们尚未确认他们的电子邮件,请不要发送PM,而是在他们登录时显示。提醒他们确认他们的电子邮件。

  • 如果他们确认了他们的电子邮件,请将其发送出去。

但无论如何,您的场景听起来像服务器配置错误。为什么邮件服务器会不断重新发送邮件,因为它收到了“无法送达”的邮件?据我所知,只有在技术原因无法访问接收主机时才会重新发送邮件。

答案 1 :(得分:0)

你真的应该要求确认。

除此之外,您可以停用其电子邮件已退回一定次数的用户,并在下次登录时需要新的电子邮件。

答案 2 :(得分:0)

没有验证会很难,但你至少可以验证它来自哪个域:

选项1:使用getmxrr在主机名上搜索MX记录

选项2:使用checkndsrr检查其DNS信息

但所有这些确实是检查域的有效性,以及它是否正在运行邮件服务器。要获得真正的身份验证,确认是最好的方法。您还可以实施一个工具来发送测试电子邮件,看看它是否会反弹。但是这种方法可能并不总是按预期工作,因为有些变化,有些服务器是即时的,有些则可能在一天之后返回无法送达的电子邮件。

我希望这会有所帮助。

答案 3 :(得分:0)

考虑使用一个复选框,以便人们可以选择停用电子邮件通知。如果他们没有输入有效的电子邮件地址,肯定是因为他们不想首先收到电子邮件,所以让他们告诉你。

此外,您可以考虑使用选择加入系统,人们不会首先收到电子邮件通知,并且必须在其帐户设置中的某个位置启用它,并在此处提供电子邮件地址时刻。这样,假电子邮件地址的数量将减少到接近零。