email_task = new EmailTask ();
}
/**
* 获取邮件群发任务
*/
function get_email_task() {
$result = $this->email_task->get_email_task ();
return $result;
}
/**
* 添加邮件群发任务
* @param unknown_type $data
*/
function add_email_task($data = array()) {
Doo::loadModel ( 'users' );
$user = new Users ();
$t = $user->getCountz ();
$this->email_task->email_title = $data ['email_title'];
$this->email_task->email_content = $data ['email_content'];
$this->email_task->status = 1;
$this->email_task->send_count = $user->getCountz ();
$this->email_task->time = time ();
$id = $this->db ()->insert ( $this->email_task );
return $id;
}
/**
* 获取邮件任务
* @param unknown_type $tid
*/
function get_email_task_by_tid($tid = 0) {
$result = $this->email_task->get_email_task_by_tid ( $tid );
Doo::loadModel ( 'users' );
$user = new Users ();
$limit = 30;
if ($result ['is_send_count'] >= $result ['send_count'])
return array ();
else {
if ($result ['send_count'] < $limit)
$limit = $result ['send_count'];
$in = $result ['send_count'] - $result ['is_send_count'];
if ($in < $limit)
$limit = $in;
$result ['user_list'] = $user->getAll ( $result ['is_send_count'] . "," . $limit );
return $result;
}
}
/**
* 获取发送失败邮件
* @param unknown_type $tid
*/
function get_faild_email_task_by_tid($tid = 0) {
$result = $this->email_task->get_email_task_by_tid ( $tid );
return $result;
}
/**
* 发送邮件
* @param unknown_type $email
*/
function send_email($email = "", $title = "", $content = "", $host = "smtp.exmail.qq.com", $port = "", $username = "websupport@smartcost.com.cn", $password = "smartcost2010", $form = "websupport@smartcost.com.cn") {
require_once './protected/class/class.pop3.php';
require_once './protected/class/class.smtp.php';
require_once './protected/class/class.phpmailer.php';
$mail = new PHPMailer ();
$body = stripcslashes ( $content );
$mail->IsSMTP (); // telling the class to use SMTP
$mail->SMTPAuth = true; // enable SMTP authentication
//$mail->SMTPSecure = "ssl"; // sets the prefix to the servier
//$mail->Host = "smtp.exmail.qq.com"; // sets GMAIL as the SMTP server
$mail->Host = $host;
if (! empty ( $port ))
$mail->Port = $port; // set the SMTP port for the GMAIL server
//$mail->CharSet = "GBK";
$mail->Username = $username; // GMAIL username
$mail->Password = $password; // GMAIL password
$mail->From = $username;
$mail->FromName = "=?UTF-8?B?" . base64_encode ( '纵横知道·问答' ) . "?=";
$mail->Subject = $title;
$mail->MsgHTML ( $body );
$mail->AddAddress ( $email );
if (! $mail->Send ()) {
//echo $mail->ErrorInfo;
return false;
} else {
return true;
}
}
/**
* 删除邮件任务
* @param unknown_type $tid
*/
function delete_email_task_by_tid($tid = 0) {
Doo::loadModel ( 'm/email_task' );
$task = new EmailTask ();
$task->tid = $tid;
$this->db ()->delete ( $task );
}
/**
* 邮件发送完成-更新状态
* @param unknown_type $tid
*/
function update_email_task_by_faild_email($tid) {
Doo::loadModel ( 'm/email_task' );
$task = new EmailTask ();
$email = $task->get_email_task_by_tid ( $tid );
$task->tid = $tid;
$task->status = 3;
if (empty ( $email ['faild_uid'] ))
$task->status = 4;
$this->db ()->update ( $task );
}
/**
* 更新群发任务进度
* @param unknown_type $tid
* @param unknown_type $is_send_count
*/
function update_email_task_by_tid($tid = 0, $is_send_count = 0, $faild_email = "") {
$task = $this->email_task->get_email_task_by_tid ( $tid );
$this->email_task->tid = $tid;
$this->email_task->is_send_count = $is_send_count;
$this->email_task->status = 2;
$this->email_task->faild_uid = $faild_email . $task ['faild_uid'];
$this->db ()->update ( $this->email_task );
}
/**
* 更新邮件失败状态
* @param unknown_type $tid
* @param unknown_type $faild_email
*/
function update_email_task_status_by_tid($tid = 0, $status = 4) {
Doo::loadModel ( 'm/email_task' );
$task = new EmailTask ();
$task->tid = $tid;
$task->status = $status;
$this->db ()->update ( $task );
}
/**
* 更新失败邮件
* @param unknown_type $tid
* @param unknown_type $faild_email
*/
function update_faild_email_task_by_tid($tid = 0, $faild_email = "") {
Doo::loadModel ( 'm/email_task' );
$task = new EmailTask ();
//$task_faild = $this->email_task->get_email_task_by_tid ( $tid );
$task->tid = $tid;
if (empty ( $faild_email ))
$task->status = 4;
$task->faild_uid = $faild_email;
$this->db ()->update ( $task );
}
/**
* 更新失败邮件
* @param unknown_type $tid
* @param unknown_type $faild_email
*/
function de_faild_email_task_by_tid($tid = 0, $faild_email = "") {
Doo::loadModel ( 'm/email_task' );
$task = new EmailTask ();
//$task_faild = $this->email_task->get_email_task_by_tid ( $tid );
$task->tid = $tid;
$task->de_email = $faild_email;
$this->db ()->update ( $task );
}
/**
* 获得分页数据
* @param unknown_type $table
* @param unknown_type $condition
* @param unknown_type $on_page
* @param unknown_type $page_size
*/
function get_page($table = "", $condition = "", $on_page = 1, $page_size = 20, $action = "", $get = "", $other = "page") {
$page_c = "";
$page ['previous'] = get_previous ( $on_page );
$page ['on_page'] = $on_page;
$total_count = $this->get_table_count ( $table, $condition );
$total = intval ( $total_count / $page_size );
$page ['total_page'] = ($total_count % $page_size) == 0 ? $total : $total + 1;
$page ['total_data'] = $total_count;
$page ['next'] = $on_page == $page ['total_page'] ? $page ['total_page'] : $on_page + 1;
$i = 1;
$page_max = 1;
if ($on_page > 10) {
$page_max = intval ( $on_page / 10 ) + 1;
$i = intval ( $on_page / 10 ) * 10 - 1;
}
for(; $i <= $page ['total_page']; $i ++) {
if ($i == $on_page) {
if ($other == "page")
$page_c .= '' . $i . '';
else
$page_c .= ' ' . $i . ' ';
} else if ($other == "page")
$page_c .= '' . $i . '';
else
$page_c .= ' ' . $i . ' ';
if ($i == (10 * $page_max))
break;
}
$page ['page'] = $page_c;
$page ['lower'] = (-- $on_page) * $page_size;
return $page;
}
/**
* 获取总页数
* @param unknown_type $table
* @param unknown_type $condition
*/
public function get_table_count($table = "", $condition = "") {
$sql = "select count(*) as count from " . $table . " where 1 " . $condition;
$query = Doo::db ()->query ( $sql );
$result = $query->fetch ();
return $result ['count'];
}
/**
* 获取数据
* @param unknown_type $data 一般选择条件
* @param unknown_type $limit
* @param unknown_type $condition
* @param unknown_type $table
*/
function get_list($data = array(), $condition = "", $limit = "", $table = "") {
foreach ( $data as $key => $value ) {
if (is_numeric ( $value ))
$condition .= " and " . $key . " = " . $value;
else
$condition .= " and " . $key . " like '%" . $value . "%' ";
}
$condition = ' where 1 ' . $condition . $limit;
$sql = "select * from " . $table . $condition;
$query = Doo::db ()->query ( $sql );
$result = $query->fetchAll ();
return $result;
}
function db() {
return Doo::db ();
}
}
?>