2012-05-23 6 views
0

Я не могу отправлять электронные письма с помощью mediatemple в codeigniter. Я проверял пароль электронной почты и хост smtp, и они верны.mediatemple - не удается отправить электронное письмо с помощью codeigniter

Это ошибка:

Severity: Notice 

Message: fwrite() [function.fwrite]: send of 12 bytes failed with errno=10054 An existing connection was forcibly closed by the remote host. 

Filename: libraries/Email.php 

Line Number: 1846 

Это мой код: я заменил sxxxxx.gridserver.com с моей правильной SMTP.

function _sendEmail($from,$fromname,$to,$subject,$message){ 
      $config = array(
      'protocol' => 'smtp', 
      'smtp_host' => 'sxxxxx.gridserver.com', 
      'smtp_port' => 465, 
      'smtp_user' => '[email protected]', 
      'smtp_pass' => 'mypass' 
     ); 


     $this->load->library('email',$config); 
     $this->email->set_newline("\r\n"); 

     $this->email->from($from,$fromname); 
     $this->email->to($to); 
     $this->email->subject($subject); 
     $this->email->message($message); 
     $this->email->send(); 
    } 

Любая помощь будет оценена по достоинству.

Edit: Я установил эту проблему, используя порт 25.

+0

Если вы подключаетесь через SSL и он отвергает связь, вполне возможно, что вы не имеете SSL устанавливался/включен/настроен правильно на вашем сервер. Как выглядит ваш 'phpinfo()'? – Seabass

+0

Поддерживается SSL. – user1217380

+0

Возможно, вы используете его на локальном компьютере – saravanabawa

ответ

0

Вы должны инициализировать конфиг см the codeigniter documentation for the email class.

Вот мой пример, который хорошо работает ...

function send_email($attributes) { 

     $this->load->library('email'); 

     $this->email->set_newline("\r\n"); 

     $config['protocol'] = 'smtp'; 
     $config['smtp_host'] = 'host'; 
     $config['smtp_port'] = '465'; 
     $config['smtp_user'] = '[email protected]'; 
     $config['smtp_from_name'] = 'FROM NAME'; 
     $config['smtp_pass'] = 'XXX'; 
     $config['wordwrap'] = TRUE; 
     $config['newline'] = "\r\n"; 
     $config['mailtype'] = 'html';      

     $this->email->initialize($config); 

     $this->email->from($config['smtp_user'], $config['smtp_from_name']); 
     $this->email->to($attributes['to']); 
     $this->email->cc($attributes['cc']); 
     $this->email->bcc($attributes['cc']); 
     $this->email->subject($attributes['subject']); 

     $this->email->message($attributes['message']); 

     if($this->email->send()) { 
      return true;   
     } else { 
      return false; 
     }  

} 
+0

Код, который у меня работает с gmail, но не с mediatemple.It имеет какое-то отношение к mediatemple. Я тоже пробовал ваш код, но получил ту же ошибку. – user1217380

+0

Я думаю, вам нужно связаться с Mediatemplate относительно ошибки, кажется, что есть проблема с хостом smtp. Возможно, имеется некоторая функция безопасности, которая предотвращает отправку почты. –

+1

Исправлена ​​проблема.port 456 только для ssl.I нужно было использовать 25. Спасибо за вашу помощь в любом случае. – user1217380

Смежные вопросы