output->enable_profiler(TRUE);
$this->load->model('Logs_model');
$this->load->model('InfoSMS_model');
}
public function index($status=0)
{
$this->permission->is_admin();
$data['status']=$status;
$data['nav_status']='index';
if($status==1) $data['nav_status']='sent_mail';
$data['maillist']=$this->InfoSMS_model->un_send_mail(200,$status);
$this->load->view('bootstrap/header',$data);
$this->load->view('bootstrap/sendmail');
$this->load->view('bootstrap/footer');
}
public function log_list()
{
$data['nav_status']='loglist';
$data['log']=$this->InfoSMS_model->get_mail_log();
$this->load->view('bootstrap/header',$data);
$this->load->view('bootstrap/sendmail_log_list');
$this->load->view('bootstrap/footer');
}
//设置邮件为未发送
public function set_unsend($M_SN){
if ($this->InfoSMS_model->set_mail_status($M_SN,0)) {
echo 1;
}else{
echo 0;
}
}
public function send_mail(){
@set_time_limit(0);
$result=$this->InfoSMS_model->un_send_mail(2,0);
if (empty($result))
{
echo 'null';
die();
}
$this->load->library('email');
$config['protocol'] = 'smtp';
$config['smtp_host'] = 'ssl://smtp.chinahighlights.net';//ssl://smtp.sendgrid.net';
$config['smtp_port'] = 465;
$config['smtp_user'] = 'noreply02@chinahighlights.net';//'zm198311@yahoo.com.cn';
$config['smtp_pass'] = 'eHgb2Z8G\HbR';//cits@123';
$config['smtp_timeout'] = 3600;
$config['mailtype'] = 'html';
$config['wordwrap'] = TRUE;
$config['crlf'] = "\r\n";
$config['newline'] = "\r\n";
foreach ($result as $key => $m)
{
$this->email->initialize($config);
$order_condition=false;
if (!empty($m->M_ToEmail)) {
$this->email->from('noreply02@chinahighlights.net', $m->M_FromName);
$this->email->to($m->M_ToEmail,$m->M_ToName);
$this->email->reply_to($m->M_ReplyToEmail, $m->M_ReplyToName);
if(!empty($m->M_CopyEmail)) $this->email->cc($m->M_CopyEmail);//抄送
$this->email->subject($m->M_Title);
($m->M_Web!='chtcdn' && $m->M_Web!='paypal msg') && $m->M_Body = str_replace(array("\r\n", "\r", "\n"), "
", $m->M_Body);
$this->email->message($m->M_Body);
if (!$this->email->send())
{
//发送失败,则记录日志,并发送一封邮件给管理员
$error_msg=$this->email->print_debugger();
$this->Logs_model->write('send_mail',$m->M_SN,$error_msg);
$this->InfoSMS_model->send_mail('邮件监控系统', 'noreply02@chinahighlights.net', 'ycc', 'ycc@chinahighlights.net', "有一个邮件投送失败","投送失败邮件ID:$m->M_SN",'系统邮件');
echo 'false';
}
else
{
//成功发送
$m->M_Web!='paypal msg' && $order_condition=" or (M_ToEmail='$m->M_ToEmail' and M_ToName='$m->M_ToName' and M_Title='$m->M_Title') ";
echo 'ok';
}
}
$this->InfoSMS_model->set_mail_status($m->M_SN,1,$order_condition);
$this->email->clear(TRUE);
}
}
//HT邮件发送列表
public function ht_failed_mail($status=0){
$data['status']=$status;
$data['nav_status']='failed_nav';
if($status==1) $data['nav_status']='success_nav';
if($status==2) $data['nav_status']='unsend_nav';
$data['birthday_mail']=$this->InfoSMS_model->get_cusbirthdaycard_list($status);
$data['batchftp_mail']=$this->InfoSMS_model->get_batchftp_list($status);
$data['stranded_mail']=$this->InfoSMS_model->get_strandedemail_list($status);
$this->load->view('bootstrap/header',$data);
$this->load->view('bootstrap/ht_failed_mail');
$this->load->view('bootstrap/footer');
}
//HT邮件是否有发送失败的邮件
public function has_failed_mail(){
$birthday_mail=$this->InfoSMS_model->get_cusbirthdaycard_list(0,TRUE);
$batchftp_mail=$this->InfoSMS_model->get_batchftp_list(0,TRUE);
$stranded_mail=$this->InfoSMS_model->get_strandedemail_list(0,TRUE);
$num=count($birthday_mail)+count($batchftp_mail)+count($stranded_mail);
if($num==0) {
echo '暂无发送不出去的邮件';
exit();
}
//发送失败的生日邮件
$text="cusbirthdaycard(CBC_SN):";
if (!empty($birthday_mail)) {
foreach ($birthday_mail as $b) {
$text.=$b->CBC_SN.',';
}
}
//发送失败的报价信确认信邮件
$text.="
batchftp(BAT_SN):";
if (!empty($batchftp_mail)) {
foreach ($batchftp_mail as $t) {
$text.=$t->BAT_SN.',';
}
}
//发送失败的供应商平台邮件
$text.="
strandedemail(M_SN):";
if (!empty($stranded_mail)) {
foreach ($stranded_mail as $s) {
$text.=$s->M_SN.',';
}
}
//发送警告通知
$toname='jiangjianhua';
$tomail='jiangjh@citsguilin.com';
$ccmail='cht58@citsguilin.com';
$this->send_notice_mail($toname,$tomail,'cits','cht07@citsguilin.com',$ccmail, "HT有 $numHT 封邮件发送失败",$text);
}
//HT邮件发送程序是否运行
public function is_ht_mail_running(){
$start_date=date('Y-m-d');
$end_date=date('Y-m-d',strtotime("tomorrow"));
//计算当天需要发送邮件数量
$birthday_count=$this->InfoSMS_model->get_ht_mail_count($start_date,$end_date,'CS_CusBirthDayCard','CBC_BirthDay');
$batchftp_count=$this->InfoSMS_model->get_ht_mail_count($start_date,$end_date,'BatchFTP','LastEditDate');
$stranded_count=$this->InfoSMS_model->get_ht_mail_count($start_date,$end_date,'CCP_StrandedEmail','M_AddTime');
$mail_count=0;
$mail_count+=$birthday_count;
$mail_count+=$batchftp_count;
$mail_count+=$stranded_count;
if ($mail_count>0) {
//计算当天已发送邮件数量
$num1=$this->InfoSMS_model->get_ht_mail_count($start_date,$end_date,'CS_CusBirthDayCard','CBC_BirthDay','CBC_SendState');
$num2=$this->InfoSMS_model->get_ht_mail_count($start_date,$end_date,'BatchFTP','LastEditDate','BAT_State');
$num3=$this->InfoSMS_model->get_ht_mail_count($start_date,$end_date,'CCP_StrandedEmail','M_AddTime','M_Sign');
$send_count=0;
$send_count+=$num1;
$send_count+=$num2;
$send_count+=$num3;
if($send_count==0){
//如果当天有需要发送的邮件,并且已发送记录为0,则发送一封警告邮件
$toname='liangyuyun';
$tomail='jiangjh@citsguilin.com';
$ccmail='cht58@citsguilin.com';
$this->send_notice_mail($toname,$tomail,'cits','cht07@citsguilin.com',$ccmail, "HT邮件发送程序已停止运行","HT邮件发送程序已停止运行...");
exit();
}
}
echo 'ok!';
}
//发送邮件
public function send_notice_mail($toname,$tomail,$fromname,$frommail,$ccmail,$subject,$mailbody){
$this->load->library('Phpmailer_lib');
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->Host = '202.103.68.122:25';
$mail->SMTPAuth = true;
$mail->Username = "cht58@citsguilin.com";
$mail->Password = "B047f21d654e07";
$mail->From = $frommail;
$mail->SMTPSecure = 'tls';
$mail->CharSet = "utf-8";
$mail->Encoding = "base64";
$mail->AddAddress($tomail);
$mail->AddAddress($ccmail);
$mail->IsHTML(true);
$mail->Subject = $subject;
$mail->Body = $mailbody;
if (!$mail->Send()) {
echo "邮件发送有误
";
echo "邮件错误信息: " . $mail->ErrorInfo;
} else {
echo " 邮件发送成功!
";
}
}
//发送邮件
public function send_like_mail($tomail){
$tomail = $tomail.'@citsguilin.com';
$subject='点赞邮件模板';
$mail_sn=time();
$mailbody='