2016-07-05 40 views
2
$config = array(
    'protocol' => 'smtp', 
    'smtp_host' => 'ssl://smtp.gmail.com', 
    'smtp_port' => '465', 
    'smtp_user' => "[email protected]", 
    'smtp_pass' => "xxxxxxx", // change it to yours 
    'mailtype' => 'html', 
    'charset' => 'utf8' 
); 

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

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

$this->email->from($config['smtp_user']); 
$this->email->to($email['user_email']);   
$this->email->subject($row['tplsubject']); 
$this->email->message(html_entity_decode($email_subject)); 
$this->email->send(); 

その示すエラーfsockopenの():SSLに接続できません://smtp.gmail.com:465

A PHPのエラーが発生しました

重要度に動作していないこのコード:警告

メッセージ:fsockopenの():SSLに接続できません://smtp.gmail.com:465 (ソケットトランスポートを見つけることができません "SSL" - あなたがPHPを設定したとき にそれを有効にするのを忘れたのか?)

ファイル名:ライブラリ/ Email.php

行番号:1689

+2

PROTIP:あなたの*実際の*パスワードを質問に含めないでください。 –

+0

これはテストするために必要なだけなので、 'ssl://smtp.gmail.com'から 'ssl://'を削除してテストを続けることができました。 – busycoding

答えて

4

これは、CodeIgniterの問題ではなく、PHPの設定に関連する問題。この質問の答えはここにあります:Unable to find the socket transport "ssl" - did you forget to enable it when you configured PHP?

注意すべきことは、コードニッターでは、電子メール設定ファイルを使用してすべての設定を保持できることです。 (コントローラで毎回定義する必要はありません)。あなたは、ファイルを作成することによってこれを行うことができます:application/config/email.phpあなたは、このように、あなたの設定で、このファイルを埋めることができます。

<?php defined('BASEPATH') OR exit('No direct script access allowed'); 

$config = array(
    'protocol' => 'smtp', // 'mail', 'sendmail', or 'smtp' 
    'smtp_host' => 'your_host', 
    'smtp_port' => your_port, 
    'smtp_user' => 'your_email', 
    'smtp_pass' => 'your_password', 
    'smtp_crypto' => 'security', //can be 'ssl' or 'tls' for example 
    'mailtype' => 'html', //plaintext 'text' mails or 'html' 
    'smtp_timeout' => '4', //in seconds 
    'charset' => 'iso-8859-1', 
    'wordwrap' => TRUE 
); 

たびに、あなたはこれらの設定が自動的に読み込まれますライブラリ($this->load->library('email');)をロードします。

また、電子メールパスワードをすぐにに変更することをお勧めします。

+0

ありがとうMr.Raocket Hazmat –

関連する問題