通过电子邮件发送错误500而不发送垃圾邮件

时间:2012-01-05 03:19:18

标签: php email error-handling

我目前正在开发PHP / MySQl应用程序。如果应用程序无法恢复并且无法继续执行错误,则抛出500错误:

  • 无法连接到数据库。
  • 磁盘空间不足

如果发生此类错误,我希望通过电子邮件发送/轻笑。问题是我不希望每次触发500错误时都通过电子邮件发送。如果网站非常繁忙,那么在很短的时间内,人们就可以轻松收到数百封电子邮件或短信。

我考虑过在首次出现错误时发送电子邮件,然后设置一个标志,以防止在接下来的20分钟内发送电子邮件。然而,这导致了另一个问题。如果该标志存储在数据库中,或存储在文件系统上的文件中,则无法连接到数据库或磁盘空间不足会使该标志无效。

用于发送电子邮件的SMTP服务器也可能出现故障,但在这种情况下,我认为任何事情都无法完成,并且需要外部监控服务。 / p>

有没有更好的方法呢?

2 个答案:

答案 0 :(得分:1)

不,你的解决方案可能是最好的[简单]选项。但是使用预先存在的文件来做。在文件系统的某个地方创建它,即使空间用完也存在。每次发生500错误时,使用touch()更新修改时间。如果filemtime()在最后[x]分钟内,请不要发送电子邮件。

答案 1 :(得分:0)

没有附属或任何内容,但Pingdom可能对您有帮助。