2014-01-11 2 views
0

Я пытаюсь отправить почту с помощью расширения YiiMailer, когда я использовал порт 465, получивший ошибку «fwrite(): ошибка отправки из 16 байтов с ошибкой = 10054. Существующее соединение было принудительно закрыто удаленный хост ", и когда я использовал порт 587, он не смог отправить почту.Не удалось отправить почту с помощью YiiMailer

Код: В контроллере:

  $mail = new YiiMailer(); 
      $mail->setData(array('message' => 'Message to send', 'name' => 'John Doe', 'description' => 'Contact form', 'mail' => $mail)); 
      $mail->setFrom('[email protected]', 'John Doe'); 
      $mail->setTo($_POST['UserLogin']['email']); 
      $mail->setSubject('Reser Password'); 
      $mail->setBody('Simple message'); 
      $mail->IsSMTP(); 
      $mail->Host = "smtp.gmail.com"; 
      $mail->Port = 465; 
      $mail->SMTPAuth = true; 
      $mail->Username = "*******@gmail.com"; 
      $mail->Password = "********"; 
      if ($mail->send()) { 
       Yii::app()->user->setFlash('contact','Thank you for contacting us. We will respond to you as soon as possible.'); 
       Yii::log("Mail sent"); 
      } else { 
       Yii::app()->user->setFlash('error','Error while sending email: '.$mail->getError()); 
       Yii::log("Mail Error"); 
      } 
      } 

В main.php

'import'=>array(
    'application.models.*', 
    'application.components.*', 
      'ext.YiiMailer.YiiMailer', 
), 

Пожалуйста, помогите мне выйти из этой проблемы, и я попробовал другое расширение тоже, как Emailer, PHPMailer, но там я получена ошибка SMTP «smtp не удалось подключиться к удаленному серверу»

Заранее благодарен

+0

установить порт как 587 и попробуйте. –

ответ

1

Я предполагаю, что у вас нет php_openssl в вашем php.ini вашего сервера. Проверьте phpinfo(), чтобы убедиться, что он включен.

Также вы можете добавить строки

$mail->SMTPSecure='ssl'; 
$mail->Mailer='smtps'; 
1

Это работает для меня!

$mail->IsSMTP(); 
     $mail->Host = "smtp.gmail.com"; 
     $mail->Port = 587; 
     $mail->SMTPAuth = true; 
     $mail->SMTPSecure= 'tls'; 
     $mail->Username = "*******@gmail.com"; 
     $mail->Password = "********";  
Смежные вопросы