当程序执行群发邮箱的时候,会出现等待程序反馈时间太长 这对于用户体验来说是很不好的,用户大多会在程序没有执行完就关闭程序,这样发送邮件也会中断,所以我们的解决思路应该是用异步去执行发邮件的过程。
一、创建一个连接用户操作页面和执行发件的方法:
private function connect($host, $path, $param = array()){
$query = isset($param) ? http_build_query($param) : '';
$errstr = 'error';
$timeout = 30; //连接超时时间(S)
$fp = @fsockopen($host, $port, $errno, $errstr, $timeout);
return '连接失败';
if ($errno || !$fp) {
河南网站建设公司价格,品牌型网站建设价格,商城网站建设价格,响应式网站建设价格,河南网站设计制作
stream_set_blocking($fp,0); //非阻塞
stream_set_timeout($fp, 1);//响应超时时间(S)
$out = "POST " . $path . " HTTP/1.1\r\n";
$out .= "host:" . $host . "\r\n";
$out .= "content-length:" . strlen($query) . "\r\n";
$out .= "content-type:application/x-www-form-urlencoded\r\n";
$out .= "connection:close\r\n\r\n";
$result = @fputs($fp, $out);
河南网站建设公司价格,品牌型网站建设价格,商城网站建设价格,响应式网站建设价格,河南网站设计制作
public function index(){
0 => 'xxx@qq.com',
1 => 'xxx@qq.com',
$url='http://'.$_SERVER['HTTP_HOST']..'/Sends/emails';
$info=parse_url($url);
/*dump($info);*/ $res=$this>Connect($info["host"],$info['path'],$param);
echo '发送成功'; /*提示用户发送成功*/
public function emails(){
set_time_limit(0);/*设置程序运行时间没有限制防止运行超时*/
河南网站建设公司价格,品牌型网站建设价格,商城网站建设价格,响应式网站建设价格,河南网站设计制作
ignore_user_abort(true);//设置与客户机断开是否会终止执行
$data=I('post.');
$sendTitle="邮件标题";
$sendinfo='邮件内容';
'title'=>$sendTitle,
'detail'=>$sendinfo,
);
$mail= new Service\SendemailService();
foreach ($data as $k => $v) {
$email.=$v.'|';
$info=$mail->sendEmail($send,$toMail);
河南网站建设公司价格,品牌型网站建设价格,商城网站建设价格,响应式网站建设价格,河南网站设计制作
$log_name = "Public/notify_url.log"; //log文件路径
$this>log_result($log_name,$email.date(time(),'H:i:s').';');
/*记录一下日志看程序是否执行发件*/
}
PHP发送邮件截
用户运行结果(以上是测试)
PHP发送邮件截
日志查看
PHP发送邮件截
PHP发送邮件截
测试的两个邮箱都已经收到邮件
河南亿宏世纪网络科技有限公司,专注于互联网+品牌整合营销,公司拥有专业的互联网管理、运营策划、UI设计、技术开发等团队,专业从事于工业互联网的开发建设。我司拥有成熟的网络技术开发团队,针对网站开发、技术服务、网站风格定位、网站功能优化、网站推广维护等都具备很强的专业技术水平,旨在为客户提供专业的互联网应用解决方案。公司始终秉持着诚信经营、质量为先的经营理念,我们不仅提供优质的网络技术和云端供应链服务,而且还在产品的选择、应用等方面提供专业的咨询与售后服务。