use*_*065 8 php email background background-process phpmailer
PHPMailers在从Gmail帐户发送电子邮件方面做得很好.但这需要相当长的时间,在电子邮件发送之前,页面不会显示响应.有什么方法可以在后台发送电子邮件,以便为用户提供更好的用户体验?谢谢!
小智 11
它会在需要时触发(避免使用CRON),它很快,因为它被称为背景,并且是立即的.
1.电子邮件队列. 使用插入来获取表的MySQL中的所有字段,例如:
$queryIN="INSERT INTO email_queue (date,subject,body,destination,idle) values (...)";
mysql_query($queryIN);
Run Code Online (Sandbox Code Playgroud)
这很重要,因为您需要一个独立的后台流程,因此注册和审核所有外发电子邮件也是一个好主意.
2. PHP exec(). 在MySQL中插入后是时候调用外部执行:
exec("wget -qO- http://example.com/index.php?process_email_queue=1 &> /dev/null &");
Run Code Online (Sandbox Code Playgroud)
-q0-和&> ... /dev/null &需要抑制输出,并呼吁作为后台进程.3.相同的脚本文件index.php或其他用于处理队列调用:
这样,它将调用我们的index.php(您可以使用其他名称文件),并处理传出:
if ($_GET['process_email_queue']==1) { ...code for sending idle emails queue... }
Run Code Online (Sandbox Code Playgroud)
也许你必须触摸一些php.ini选项exec(),这不是什么大不了的事.
一切正常运行后,您将提供更好的Web导航和电子邮件处理,以实现快速响应和零等待.
在某些情况下,您将从等待直接电子邮件2.60秒传递到queue-exec-background 0.024秒,这速度提高了11倍.
| 归档时间: |
|
| 查看次数: |
10331 次 |
| 最近记录: |