将表单发送到用户永远不会知道或看不到的PHP脚本

时间:2012-01-28 19:22:07

标签: php email background-process performance

在我的网站上,我有一项功能,可让您关注其他用户的更新。当用户更改其信息时,任何关注他或她的人都将通过电子邮件发送此更改。

我进行了设置,以便php更改数据库中的信息,然后搜索用户联系人以查看谁跟踪他/她,并向正在通知他们更改的人发送电子邮件。

自添加此通知功能以来我遇到的问题是页面加载(表单发布到自身)并且几乎立即显示更改(取决于跟踪特定用户的人数)可能需要的问题一些munites用于页面加载和显示更新(因为php在页面重新加载之前发送所有电子邮件)。

如何设置,发送电子邮件的脚本在后台某处运行,用户无需等待电子邮件在页面重新加载之前发送,甚至可能退出如果脚本仍在运行,网站仍然会发送电子邮件吗?

P.S。我的所有编程和开发技能都是自学的,所以我不知道很多术语.....你可能不得不愚蠢地回答你的反应,以便我理解你在说什么。很抱歉给您带来不便,非常感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

我很惊讶发送一些电子邮件只需要几分钟,但无论如何,你至少可以通过四种方式做到这一点:

  • 使用ajax将表单数据发送到单独的脚本,该脚本通常在表单发布时发送电子邮件
  • 使用表单脚本fork(需要pcntl
  • 通过php向您自己的页面发出异步请求(使用cURL设置低超时或打开套接字)
  • 使用exec('script-that-sends-emails args >> some-other-file 2>&1 &');