CODEIGNITER - fwrite (): сбой операции SSL с кодом 1. OpenSSL Сообщения об ошибках: ошибка: 140D00CF: подпрограммы SSL: SSL_write: протокол отключен - PullRequest
0 голосов
/ 08 сентября 2018

У меня есть конфигурация электронной почты smtp для отправки электронной почты через Codeigniter следующим образом:

$config = [
  'protocol' => 'smtp',
  'smtp_host' => 'ssl://cph.dnet.net.id',
  'smtp_port' => 465,
  'smtp_timeout' => 50,
  'smtp_user' => 'Myemail@domain.com',
  'smtp_pass' => 'MyPaSsWoRd',
  'smtp_keepalive' => 'TRUE',
  'mailtype' => 'html',
  'charset' => 'iso-8859-1'
];
$this->email->initialize($config); 

Если я отправляю только несколько писем, это всегда работает. Однако, когда я отправляю много писем, возникает ошибка, подобная следующей:

Fatal error: Maximum execution time of 30 seconds exceeded in C:\XAMPP\htdocs\sicuti\system\libraries\Email.php on line 2268

Ошибка устраняется путем редактирования "php.ini" в значении "max_execution_time" до 9999 .but codeigniter отображает новые проблемы, такие как:

fwrite(): SSL operation failed with code 1. OpenSSL Error messages: error:140D00CF:SSL routines:SSL_write:protocol is shutdown

, хотя моя конфигурация smtp правильная, согласно рекомендациям в моей cpanel

Cpanel Manual Configuration

Если определенно будет работать только несколько электронных писем, но если появится более 10 ошибок, что я должен изменить, чтобы я мог отправлять несколько писем одновременно? Спасибо, любой ответ, который я ценю.

1 Ответ

0 голосов
/ 10 сентября 2018

У меня есть функция цикла для отправки нескольких электронных писем, которая вызывает ошибки, потому что я отправляю много писем за раз, поэтому я даю перенаправление на каждую доставку электронной почты, чтобы доставка работала нормально. В следующей функции цикла я вставил функцию перенаправления, и она работает очень хорошо:

function index () {
  if (!empty($this->Leave_Model->count_all_leave_wait())) {
    $leave_wait_data = $this->Leave_Model->get_all_leave_wait();
    foreach ($leave_wait_data as $res) {
      if (date('Y-m-d')>$res->Confirm_Date) {
        $this->Send_Leave_Request($res->L_Request_ID); # Send Email
        $this->Leave_Model->update_lvd_confirm_date($res->L_Request_ID); # Update Confirm Date When Success Send
        redirect('Login_Employe'); # Redirect
      }
    }
  }
}

function Send_Leave_Request ($id)
{
  # bla bla bla
  $this->email->message('Bla bla  la  bla  bla...');
  $this->email->send();
}
...