国产精品一区二区三区……-大杳蕉伊人欧美一本遒在饯-日本不卡一区免费在线观看-国产亚洲欧美中文字幕

400-800-9385
網(wǎng)站建設(shè)資訊詳細(xì)

php異步群發(fā)郵件

發(fā)表日期:2020-04-18 16:01:02   作者來(lái)源:紅旺   瀏覽:3978   標(biāo)簽:php網(wǎng)站建設(shè)    
當(dāng)程序執(zhí)行群發(fā)郵箱的時(shí)候,會(huì)出現(xiàn)等待程序反饋時(shí)間太長(zhǎng) 這對(duì)于用戶(hù)體驗(yàn)來(lái)說(shuō)是很不好的,用戶(hù)大多會(huì)在程序沒(méi)有執(zhí)行完就關(guān)閉程序,這樣發(fā)送郵件也會(huì)中斷,所以我們的解決思路應(yīng)該是用異步去執(zhí)行發(fā)郵件的過(guò)程。

一、創(chuàng)建一個(gè)連接用戶(hù)操作頁(yè)面和執(zhí)行發(fā)件的方法:

private  function connect($host, $path, $param = array()){
    $query = isset($param) ? http_build_query($param) : '';
    $port = 80;
    $errno = 0;
    $errstr = 'error';
    $timeout = 30; //連接超時(shí)時(shí)間(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);//響應(yīng)超時(shí)時(shí)間(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";
    $out .= $query;
    $result = @fputs($fp, $out);
    @fclose($fp);
    return $result;
}

二、用戶(hù)操作方法 傳遞參數(shù)頁(yè)面

public function  index(){
 $param = array(
           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);
  /*調(diào)用方法*/
  echo '發(fā)送成功';  /*提示用戶(hù)發(fā)送成功*/
  }

三、發(fā)送郵件

public function  emails(){
        set_time_limit(0);/*設(shè)置程序運(yùn)行時(shí)間沒(méi)有限制防止運(yùn)行超時(shí)*/
        ignore_user_abort(true);//設(shè)置與客戶(hù)機(jī)斷開(kāi)是否會(huì)終止執(zhí)行
        $data=I('post.');
        $email='';
        $sendTitle="郵件標(biāo)題";
        $sendinfo='郵件內(nèi)容';
        $send=array(
                'title'=>$sendTitle,    
                'detail'=>$sendinfo,
        );
        $mail= new Service\SendemailService();  
        
        foreach ($data as $k => $v) {
            $email.=$v.'|';
            $toMail=$v;
            $info=$mail->sendEmail($send,$toMail);
            /*執(zhí)行發(fā)送郵箱*/   
        }
$log_name = "Public/notify_url.log"; //log文件路徑
$this>log_result($log_name,$email.date(time(),'H:i:s').';');
 /*記錄一下日志看程序是否執(zhí)行發(fā)件*/        
 }
 
 
 

PHP發(fā)送郵件截圖1

 

 

 

用戶(hù)運(yùn)行結(jié)果(以上是測(cè)試)
 
PHP發(fā)送郵件截圖2

日志查看

PHP發(fā)送郵件截圖3

PHP發(fā)送郵件截圖4

測(cè)試的兩個(gè)郵箱都已經(jīng)收到郵件
 
如沒(méi)特殊注明,文章均為方維網(wǎng)絡(luò)原創(chuàng),轉(zhuǎn)載請(qǐng)注明來(lái)自http://pdcharm.com/news/5623.html
相關(guān)網(wǎng)站設(shè)計(jì)案例
康乐县| 肥乡县| 德格县| 临汾市| 常德市| 安远县| 军事| 江门市| 肥乡县| 莲花县| 天峨县| 黔西| 柞水县| 玉龙| 高雄市| 和硕县| 玉龙| 万州区| 通州区| 荔浦县| 马鞍山市| 民权县| 蕲春县| 西充县| 通州市| 横山县| 梁山县| 两当县| 鲁甸县| 莫力| 开鲁县| 江门市| 丹寨县| 团风县| 禄丰县| 中阳县| 安远县| 安徽省| 绿春县| 西丰县| 寿阳县|