Цикл не работает для отправки электронной почты в codeigniter

#codeigniter

#codeigniter

Вопрос:

Я использую фреймворк codeigniter. Я написал код для отправки таких писем:

 $this->emailcomm->sendemail($data) ;
  

но он находится в цикле. Он работает только один раз. Он не возвращает никакого ответа после отправки электронного письма.

Я пробовал, как показано ниже:

 for($i=0; $i<count($keyarray);$i  )
{
 $data=array(
'to' => $keyarray[$i],  
 'from' => 'test' ,
subject' => 'test Order',
'message' => ('Please see attached sales order placed ),
'attach'  =>$array[$keyarray[$i]]['pdf']
);
$this->emailcomm->sendhtml_email($data);
}
  

в библиотеке emailcomm я написал, как показано ниже:

 function sendhtml_email($info)
{
$this->CI->email->clear();
$this->CI->email->from('reports@gmail.com','Test Reports'); 
$this->CI->email->to($this->to);
$this->CI->email->subject($this->subject);
$this->CI->email->message($this->message);
$this->CI->email->attach($path.$this->attach,'attachment');
if($this->CI->email->send())
{
$this->CI->email->clear(TRUE);
return 1;
}
}
  

Он отправляет электронное письмо только один раз. Мне нужно, чтобы он запускался сколько раз в цикле. И он не выдает никаких выходных данных, подобных приведенному выше возвращению 1 после отправки электронного письма. Пожалуйста, посоветуйте мне.

Комментарии:

1. Вы должны получить ошибку в своем цикле для этого кода: ‘message’ => (‘Пожалуйста, смотрите прикрепленный заказ на продажу)

2. Это образец. Он работает для первого электронного письма. он останавливается только при первом сообщении электронной почты. это не переход к следующему электронному письму в цикле.

Ответ №1:

Пожалуйста, попробуйте это:

 for($i=0; $i<count($keyarray);$i  )
{
 $data=array(
'to' => $keyarray[$i],  
 'from' => 'test' ,
subject' => 'test Order',
'message' => '(Please see attached sales order placed )',
'attach'  =>$array[$keyarray[$i]]['pdf']
);
$this->emailcomm->sendhtml_email($data);
}
  

В библиотеке emailcomm я написал, как показано ниже:

 public function sendhtml_email($info)
{
$this->CI->load->library('email');
//$this->CI->email->clear(); //No Need
$this->CI->email->from('reports@gmail.com','Test Reports'); 
$this->CI->email->to($this->to);
$this->CI->email->subject($this->subject);
$this->CI->email->message($this->message);
$this->CI->email->attach($path.$this->attach,'attachment');
if($this->CI->email->send())
{
/*$this->CI->email->clear(TRUE);
return 1;*/ //No need
}
}
  

Ref:
https://www.codeigniter.com/user_guide/libraries/email.html

Комментарии:

1. я добавил библиотеку в свой контроллер и также попробовал без операторов возврата. но он не работает.

2. В функции, пожалуйста, проверьте info param идет или нет?

3. Он приходит, но только один раз. Если мы разместим оператор return перед функцией отправки, он вернет 2 значения и 2 значения электронной почты.

4. затем вам нужно вызвать по ссылке. Вам нужно передать ссылку в param