|
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
if (!defined('BASEPATH'))
|
|
|
|
|
exit('No direct script access allowed');
|
|
|
|
|
|
|
|
|
|
class Sendmail extends CI_Controller
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
function __construct()
|
|
|
|
|
{
|
|
|
|
|
parent::__construct();
|
|
|
|
|
//$this->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(1,0);
|
|
|
|
|
if (empty($result))
|
|
|
|
|
{
|
|
|
|
|
echo 'null';
|
|
|
|
|
die();
|
|
|
|
|
}
|
|
|
|
|
$this->load->library('email');
|
|
|
|
|
$config['protocol'] = 'smtp';
|
|
|
|
|
$config['smtp_host'] = 'hwsmtp.exmail.qq.com';//ssl://smtp.sendgrid.net';
|
|
|
|
|
$config['smtp_port'] = 25;
|
|
|
|
|
$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"), "<br>", $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);
|
|
|
|
|
$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.="<br>batchftp(BAT_SN):";
|
|
|
|
|
if (!empty($batchftp_mail)) {
|
|
|
|
|
foreach ($batchftp_mail as $t) {
|
|
|
|
|
$text.=$t->BAT_SN.',';
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//发送失败的供应商平台邮件
|
|
|
|
|
$text.="<br>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 "邮件发送有误 <p>";
|
|
|
|
|
echo "邮件错误信息: " . $mail->ErrorInfo;
|
|
|
|
|
} else {
|
|
|
|
|
echo " 邮件发送成功!<br />";
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//发送邮件
|
|
|
|
|
public function send_like_mail($tomail){
|
|
|
|
|
$tomail = $tomail.'@citsguilin.com';
|
|
|
|
|
$subject='点赞邮件模板';
|
|
|
|
|
$mail_sn=time();
|
|
|
|
|
$mailbody='<div style="overflow:hidden">
|
|
|
|
|
<a style="height:auto;text-decoration: none;" href="http://saas.chtcdn.com/index.php?app=public&mod=Zan&act=comment&mailid='.$mail_sn.'">
|
|
|
|
|
<img src="http://saas.chtcdn.com/data/upload/Comment.png" />
|
|
|
|
|
</a>
|
|
|
|
|
<a style="height:auto;text-decoration: none;" href="http://saas.chtcdn.com/index.php?app=public&mod=Zan&act=zan&mailid='.$mail_sn.'" >
|
|
|
|
|
<img src="http://saas.chtcdn.com/data/upload/like.png" />
|
|
|
|
|
</a>
|
|
|
|
|
<br/>
|
|
|
|
|
<img style="float:left;clear:both;" src="http://saas.chtcdn.com/index.php?app=public&mod=Zan&act=index&mailid='.$mail_sn.'"/>
|
|
|
|
|
</div>';
|
|
|
|
|
$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 = 'aas@citsguilin.com';
|
|
|
|
|
$mail->SMTPSecure = 'tls';
|
|
|
|
|
$mail->CharSet = "utf-8";
|
|
|
|
|
$mail->Encoding = "base64";
|
|
|
|
|
$mail->AddAddress($tomail);
|
|
|
|
|
$mail->IsHTML(true);
|
|
|
|
|
$mail->Subject = $subject;
|
|
|
|
|
$mail->Body = $mailbody;
|
|
|
|
|
if (!$mail->Send()) {
|
|
|
|
|
$result= "邮件发送有误: " . $mail->ErrorInfo;
|
|
|
|
|
} else {
|
|
|
|
|
$result= 'success';
|
|
|
|
|
}
|
|
|
|
|
echo($result);
|
|
|
|
|
}
|
|
|
|
|
}
|