当程序执行群发邮箱的时候,会出现等待程序反馈时间太长 这对于用户体验来说是很不好的,用户大多会在程序没有执行中高端建网站企业完就关闭程序,这样发送邮件也会中断,所以我们的解决思路应该是用异步去执行发邮件的过程。
一、创建一个连接用户操作页面和执行发件的方法:
private function connect($host, $path, $param=array()){
$query=isset($param) ? http_build_query($param) : '';
$port=80;
$errno=0;
$errstr='error';
$timeout=30; //连接超时时间(S)
$fp=@fsockopen($host, $port, $errno, $errstr, $timeout);
if (!$fp) {
return 【高端企业网站搭建品牌】'连接失败';
}
if ($errno || !$fp) {
return $errstr;
}
stream_set_blocking($fp,0); //非阻塞
stream_set_timeout($fp, 1)营销型网站制作报价;//响应超时时间(S)
$out ="POST " . $path . " HTTP/1.1\r
";
$out .="host:" . $host . "\r
开发网站";
$out .="content-length:" . strlen($query) . "\r
";
$out .="content-type:application/x-【网站建设推广方案】 www-form-urlencoded\r
";
$out .="connection:close\r
\r
";
$out .=$query;
$result=@fputs($fp, $out);
@fclose($fp);
return $result;
}
二、用户操作方法 传递参数页面
public function index(){
$param=array(
0=> 'xxx@qq.com',
1=> 'xxx@qq.com',
);
$url='//'.$_SERVER['HTTP_HOST']..'/Sends/emails';
$info=parse_url($url);
$res=$this>Connect($info["host"],$info['path'],$param);
echo 【手机网站建设公司】 '发送成功';
}
三、发送邮件
public function emails(){
set_time_limit(0);
ignore_user_abort(true);//设置与客户机断开是否会终止执行
$data=I('post.');
$email='';
$sendTitle="邮件标题";
$sendinfo='邮件内容';
$send=array(
'title'=>$sendTitle,
'detail'=>$sendinfo,
);
$mail=new Service\SendemailService();
foreach ($data as $k=> $v) {
$email.=$v.'|';
$toMail=$v;
$info=$mail->sendEmail($send,$toMail);
}
$log_name="Public/notify_url.log"; //log文件路径
$this>log_result($log_name,$email.date(time(),'H:i:s').';');
}
用户运行结果(以上是测试)
【行业网站制作】
日志查看
测试的两个邮箱都已经收到邮件
营销型网站建设费用 做企业网站建设的公司
请立即点击咨询我们或拨打咨询热线: 13968746378,我们会详细为你一一解答你心中的疑难。项目经理在线