Пример #1
0
 /**
  * TrackEmailStatAct::actIndex()
  * 列出符合条件的数据并分页显示
  * @param string $condition 查询条件
  * @param integer $curpage 页码
  * @param integer $pagenum 每页个数
  * @return array 
  */
 public function actIndex()
 {
     $data = array();
     $condition = '';
     $trackEmailStat = new TrackEmailStatModel();
     //接收参数生成条件
     $curpage = isset($_GET['page']) ? abs(intval($_GET['page'])) : 1;
     $type = isset($_GET['type']) ? trim($_GET['type']) : '';
     $key = isset($_GET['key']) ? post_check(trim($_GET['key'])) : '';
     $timeNode = isset($_GET['timeNode']) ? post_check(trim($_GET['timeNode'])) : '';
     $condition .= "1";
     if ($type && $key) {
         if (!in_array($type, array('trackNumber', 'platAccount'))) {
             redirect_to("index.php?mod=trackEmailStat&act=index");
         }
         $condition .= ' AND ' . $type . " = '" . $key . "'";
     }
     if (!empty($timeNode)) {
         if (!in_array($timeNode, array('addTime', 'lastTime'))) {
             redirect_to("index.php?mod=trackEmailStat&act=index");
         }
         $startTime = isset($_GET['startTime']) ? strtotime(trim($_GET['startTime']) . " 00:00:00") : strtotime(date("Y-m-d", time()) . " 00:00:00");
         $endTime = isset($_GET['endTime']) ? strtotime(trim($_GET['endTime']) . " 23:59:59") : strtotime(date("Y-m-d", time()) . " 23:59:59");
         if ($startTime && $endTime) {
             $condition .= ' AND ' . $timeNode . " BETWEEN '" . $startTime . "' AND " . "'" . $endTime . "'";
         }
     }
     //获取符合条件的数据并分页
     $pagenum = 20;
     $total = $trackEmailStat->modListCount($condition);
     $res = $trackEmailStat->modList($condition, $curpage, $pagenum);
     $page = new Page($total, $pagenum, '', 'CN');
     $pageStr = "";
     if ($res) {
         if ($total > $pagenum) {
             $pageStr = $page->fpage(array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9));
         } else {
             $pageStr = $page->fpage(array(0, 1, 2, 3));
         }
     } else {
         $pageStr = '暂无数据';
     }
     //封装数据返回
     $data['key'] = $key;
     $data['type'] = $type;
     $data['lists'] = $res;
     $data['pages'] = $pageStr;
     $data['timeNode'] = $timeNode;
     $data['startTime'] = $startTime ? date('Y-m-d', $startTime) : '';
     $data['endTime'] = $endTime ? date('Y-m-d', $endTime) : '';
     self::$errCode = trackEmailStatModel::$errCode;
     self::$errMsg = trackEmailStatModel::$errMsg;
     if (self::$errCode != 0) {
         show_message($this->smarty, self::$errMsg, "");
         return false;
     }
     return $data;
 }
Пример #2
0
    $platAccount = $v['platAccount'];
    if (!empty($toEmailSend)) {
        continue;
    }
    //格式化邮件内容
    $title = str_replace("<wedo:recordId>", $recordId, $email_title);
    $content = str_replace(array('<wedo:recordId>', '<wedo:userId>', '<wedo:markTime>', '<wedo:trackNum>', '<wedo:trackUrl>', '<wedo:userEmail>', '<wedo:userName>', '<wedo:sendTime>'), array($recordId, $toUserId, $markTime, $trackNum, $trackUrl, $userEmail, $userName, $sendTime), $email_body);
    $log .= date('Y-m-d H:i:s') . "==={$recordId}==={$toUserId}==={$toUserEmail}===";
    echo date('Y-m-d H:i:s') . "==={$recordId}==={$toUserId}==={$toUserEmail}===\n";
    //发邮件
    $emailData = array('smtpHost' => $smtpHost, 'smtpPort' => $smtpPort, 'smtpUser' => $smtpUser, 'smtpPwd' => $smtpPwd, 'title' => $title, 'content' => $content, 'toUserEmail' => $toUserEmail, 'toUserId' => $toUserId, 'userEmail' => $userEmail, 'userName' => $userName, 'trackNumber' => $trackNum, 'retryCount' => $retryCount);
    $result = TrackEmailStatModel::sendTrackEmail($emailData);
    $log .= "SES状态数据:" . json_encode($result) . "\n";
    print_r($result);
    $email_flag = $result['sendFlag'];
    $MessageId = $result['MessageId'];
    $RequestId = $result['RequestId'];
    //保存邮件发送记录
    $emailStat = array('trackNumber' => $trackNum, 'content' => $content, 'platAccount' => $platAccount, 'MessageId' => $MessageId, 'RequestId' => $RequestId, 'is_success' => $email_flag, 'addTime' => time());
    $stat_flag = TrackEmailStatModel::saveTrackEmail($emailStat);
    $log .= date('Y-m-d H:i:s') . "==={$i}/{$totals}==={$trackNum}===邮件发送状态:{$email_flag}===邮件记录状态:{$stat_flag}\n";
    echo date('Y-m-d H:i:s') . "===={$i}/{$totals}==={$trackNum}===邮件发送状态:{$email_flag}===邮件记录状态:{$stat_flag}\n";
    sleep($sleepTime);
    $i++;
}
$log .= date('Y-m-d H:i:s') . "==={$totals}封邮件已推送完毕!\n\n";
echo "\n\n" . date('Y-m-d H:i:s') . "==={$totals}封邮件已推送完毕!\n\n";
if (function_exists('write_a_file')) {
    write_a_file($logFile, $log);
}
exit;
Пример #3
0
 /**
  * TrackEmailStatModel::checkRetryCount()
  * 检查邮件发送重试次数
  * @param string $where 查询条件
  * @return integer 总数量 
  */
 public static function checkRetryCount($where)
 {
     self::initDB();
     $sql = "SELECT retryCount,trackNumber FROM " . self::$prefix . self::$table . " WHERE {$where} AND is_delete = 0";
     $query = self::$dbConn->query($sql);
     if ($query) {
         $res = self::$dbConn->fetch_array($query);
         return $res;
     } else {
         self::$errCode = 90000;
         self::$errMsg = "获取数据失败";
         return false;
     }
 }