我有一个页面,用户输入他们的电子邮件地址,点击“发送”,网络服务器将通过电子邮件向他们发送~10mb附件。现在,我的页面只显示“发送...”,用户在此页面上等待大约20秒。
相反,我想让它说“你的附件将在几分钟内通过电子邮件发送”,将该过程发送到其他地方并允许用户继续浏览而无需打开新标签。
我真的只需要有人指出我正确的方向,因为我现在甚至都不知道谷歌会做些什么。
答案 0 :(得分:2)
您可以调用另一个处理电子邮件发送的php文件,并确保拨打此电话:
ignore_user_abort(true);
这样做可以让php进程完成,即使浏览器离开了。因此,您可以通过ajax启动该过程,然后转到另一个页面,说明您的附件已被发送。
欲了解更多信息:
答案 1 :(得分:0)
我建议您查看我之前发布的这个问题。
How can I run a PHP script in the background after a form is submitted?
答案解释了如何在提交表单后在后台运行PHP脚本。当然,这只是实现这一目标的一种方法。另一种方法是构建一个地址列表并设置一个cron来定时运行脚本。两者都可以完成同样的事情,它只取决于您希望如何解决问题以及您可以在服务器上执行的操作。