php邮件异步,使PHP的mail()异步

PHP-FPM

echo "I get output instantly";

fastcgi_finish_request(); // Close and flush the connection.

sleep(10); // For illustrative purposes. Delete me.

mail("test@example.org", "lol", "Hi");

在向用户完成请求后,排队任意任意代码进行处理是非常简单的:

$post_processing = [];

/* your code */

$email = "test@example.org";

$subject = "lol";

$message = "Hi";

$post_processing[] = function() use ($email, $subject, $message) {

mail($email, $subject, $message);

};

echo "Stuff is going to happen.";

/* end */

fastcgi_finish_request();

foreach($post_processing as $function) {

$function();

}

时髦的背景工作者

立即超时卷动,让新的请求处理.我在共享的主机之前这样做是很酷的. (它永远不会很酷)

if(!empty($_POST)) {

sleep(10);

mail($_POST['email'], $_POST['subject'], $_POST['message']);

exit(); // Stop so we don't self DDOS.

}

$ch = curl_init("http://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']);

curl_setopt($ch, CURLOPT_TIMEOUT, 1);

curl_setopt($ch, CURLOPT_NOSIGNAL, 1);

curl_setopt($ch, CURLOPT_POSTFIELDS, [

'email' => 'noreply@example.org',

'subject' => 'foo',

'message' => 'bar'

]);

curl_exec($ch);

curl_close($ch);

echo "Expect an email in 10 seconds.";

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值