首页 / 网络营销 / php异步群发邮件怎么发(php异步群发邮件代码)

php异步群发邮件怎么发(php异步群发邮件代码)

Time:2024-09-09 20:48:58 Read:399 作者:CEO

当程序执行群发邮箱时,等待程序反馈的时间会太长,这对用户体验非常不好。大多数用户会在程序完成之前关闭程序,发送电子邮件也会被中断,所以我们的解决方案应该是使用发送电子邮件过程的异步执行。

1、创建连接用户操作页面并执行发送的方法:

php异步群发邮件怎么发(php异步群发邮件代码)

私有函数连接($host,$path,$param=array()){

$query=isset($param)?http_build_query($param):'';

$端口=80;

$错误号=0;

$errstr='错误';

$超时=30;//连接超时时间(S)

$fp=@fsockopen($host,$port,$errno,$errstr,$timeout);

如果(!$fp){

return'连接失败';

}

if($errno||!$fp){

返回$errstr;

}

Stream_set_blocking($fp,0);//非阻塞

Stream_set_timeout($fp,1);//响应超时时间(S)

$out='发布'。$路径。'HTTP/1.1\r\n';

$out.='host:'。$主机。'\r\n';

$out.='内容长度:'。strlen($query)。'\r\n';

$out.='content-type:application/x-www-form-urlencoded\r\n';

$out.='connection:close\r\n\r\n';

$out.=$query;

$结果=@fputs($fp,$out);

@fclose($fp);

返回$结果;

}

2、用户操作方式:传递参数页面

公共函数索引(){

$参数=数组(

0='',

1='',

);

$url=''.$_SERVER['HTTP_HOST'].'/发送/电子邮件';

$info=parse_url($url);

/*dump($info);*/$res=$thisConnect($info['host'],$info['path'],$param);

/*调用方法*/

echo'发送成功';/*提示用户发送成功*/

}

3.发送电子邮件

公共函数电子邮件(){

set_time_limit(0);/*设置程序运行时间无限制,防止运行超时*/

ignore_user_abort(true);//设置与客户端断开连接是否终止执行

$data=I('发布。');

$电子邮件='';

$sendTitle='邮件标题';

$sendinfo='邮件内容';

$发送=数组(

'标题'=$sendTitle,

'详细信息'=$sendinfo,

);

$mail=newService\SendemailService();

foreach($dataas$k=$v){

$email.=$v.'|';

$toMail=$v;

$info=$mail-sendEmail($send,$toMail);

/*执行发送邮件*/

}

$log_name='公共/notify_url.log';//日志文件路径

$thislog_result($log_name,$email.date(time(),'H:i:s').';');

/*记录日志,看程序是否执行发送*/

}

用户运行结果

日志查看

两个测试邮箱均已收到邮件。

Copyright © 2002-2024 搜索推广资讯网 版权所有 备案号: 渝ICP备2023006154号-7

免责声明: 1、本站部分内容系互联网收集或编辑转载,并不代表本网赞同其观点和对其真实性负责。 2、本页面内容里面包含的图片、视频、音频等文件均为外部引用,本站一律不提供存储。 3、如涉及作品内容、版权和其它问题,请在30日内与本网联系,我们将在第一时间删除或断开链接! 4、本站如遇以版权恶意诈骗,我们必奉陪到底,抵制恶意行为。 ※ 有关作品版权事宜请联系客服邮箱:478923*qq.com(*换成@)