Advertisement
Guest User

Untitled

a guest
Jun 29th, 2017
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.94 KB | None | 0 0
  1. function send_broadcast_mail()
  2.     {  
  3.         set_time_limit(0);
  4.        
  5.         $this->load->plugin('phpmailer');
  6.         $this->load->models('emailblast');
  7.         $config = $this->load->config('config');
  8.        
  9.         $now = date("Y-m-d");  
  10.         $query_member = $this->db->select('')
  11.                                  ->from('mail_outbox_blast')
  12.                                  ->where('schedule_send_date <=',$now)
  13.                                  ->where('status !=', '2')
  14.                                  ->where('status !=', '4')
  15.                                  ->where('retry <',' 2')
  16.                                  ->limit('50');
  17.         $return_member = $this->db->get()->result_array();
  18.  
  19.         $mail = new PHPMailer();   
  20.        
  21.         $mail->IsSMTP();
  22.         $mail->SMTPAuth = $this->config->item('is_smtp_auth');
  23.         $mail->Host     = $this->config->item('server_host');
  24.         $mail->Port     = $this->config->item('server_port');
  25.         $mail->Username = $this->config->item('username');
  26.         $mail->Password = $this->config->item('password');
  27.         $mail->FromName = $this->config->item('from_name');
  28.         $mail->From     = $this->config->item('from');
  29.         $mail->AddReplyTo($this->config->item('replay_to'), $name = $this->config->item('replay_name'));
  30.        
  31.        
  32.         foreach($return_member as $data_member){
  33.             $id_mail        = $data_member['id_mail'];
  34.             $id_group       = $data_member['id_group'];
  35.             $id_event       = $data_member['id_event'];
  36.             $name           = $data_member['name_to'];
  37.             $email          = $data_member['to'];
  38.             $from           = $this->config->item('from');
  39.             $subject        = $data_member['subject'];
  40.             $message        = $data_member['message'];
  41.             $template_name  = $data_member['template_name'];
  42.             $schedule_send  = $data_member['schedule_send_date'];
  43.             $send_date      = date("Y-m-d H:m:s");
  44.             $retry          = $data_member['retry'];
  45.             $username       = $data_member['add_by'];
  46.             $data['namax']  = strtoupper($name);
  47.            
  48.             $mail->AddAttachment("files/attachment/".$data_member['attachment']);                  
  49.             $mail->Subject = $subject;
  50.            
  51.             if(!empty($template_name)) {
  52.                 $mail->MsgHTML($this->load->view('emailblast/template/'.$template_name, $data, true));
  53.             } else {           
  54.                 $mail->MsgHTML($message);
  55.             }
  56.                
  57.             $mail->AddAddress($email,$name);
  58.                        
  59.             if ( ! $mail->Send()){
  60.                 $error_message = 'Mailer Error (' . str_replace('@', '&#64;', $email) . ') ' . $mail->ErrorInfo;
  61.                 $status = 3;       
  62.                
  63.                 if($retry+1 < 2) {
  64.                     $this->cron_model->update_outbox_status($status, $error_message, $retry, $id_mail);
  65.                 } else {
  66.                     $this->cron_model->insert_sendbox($id_mail, $id_group, $id_event, $name, $email, $from, $subject, $message, $template_name, $schedule_send, $send_date, $status, $error_message, $username);   
  67.                    
  68.                     $this->cron_model->delete_outbox_item($id_mail);
  69.                     $this->cron_model->update_mail_stat($email);
  70.                 }
  71.                                
  72.             } else {
  73.  
  74.                 $error_message = 'Mail Sent';
  75.                 $status = 2;
  76.                
  77.                 $this->cron_model->insert_sendbox($id_mail, $id_group, $id_event, $name, $email, $from, $subject, $message, $template_name, $schedule_send, $send_date, $status, $error_message, $username);
  78.                
  79.                 $this->cron_model->delete_outbox_item($id_mail);
  80.                
  81.             }
  82.                    
  83.             $mail->ClearAllRecipients();
  84.             $mail->ClearCustomHeaders();
  85.         }      
  86.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement