2013-09-23 47 views
1

我爲我的web應用程序使用codeigniter,並使用codeigniter的電子郵件功能發送電子郵件。但是當我嘗試發送電子郵件時,發生了以下錯誤。代碼點火器電子郵件功能

找不到插座運輸「SSL」 - 你忘記啓用它,當你配置PHP

這是我曾經獲得的功能代碼。

$config['protocol'] = "smtp"; 
    $config['smtp_host'] = "ssl://smtp.googlemail.com"; 
    $config['smtp_port'] = 465; 
    $config['smtp_user'] = "[email protected]"; 
    $config['smtp_pass'] = "xxxxxx"; 

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

    $this->email->from('[email protected]','Sample'); 
    $this->email->to('[email protected]'); 
    $this->email->subject('temperary Email'); 
    $this->email->message('This is a sample message'); 

    if ($this->email->send()) { 
     echo 'Your email was sent, dude.'; 
    } else { 
     show_error($this->email->print_debugger()); 
    } 

這是什麼問題?

謝謝..

+0

錯誤消息爲您提供了一個很好的起點。試着看看確認你的機器上是否有SSL,並確保它在PHP中啓用。 – Mike

+0

你的代碼是好的,但你的php配置不知道'ssl://'協議。確保它已啓用。 – Maerlyn

+1

正如消息所說......你在php.ini中啓用了'extension = php_openssl.dll'嗎?你在哪個平臺上? –

回答

2

打開ssl應該啓用。

這裏看看http://www.devcha.com/2010/01/php-fsockopen-unable-to-connect-ssl.html

或者您可以在數組加載參數:

$config = Array(
    'protocol' => 'smtp', 
    'smtp_host' => 'ssl://smtp.googlemail.com', 
    'smtp_port' => 465, 
    'smtp_user' => 'xxx', 
    'smtp_pass' => 'xxx', 
    'mailtype' => 'html', 
    'charset' => 'iso-8859-1' 
); 
$this->load->library('email', $config); 
$this->email->set_newline("\r\n"); 

// Set to, from, message, etc. 

$result = $this->email->send(); 

這對我的作品

+1

謝謝shuvo。我必須配置php.ini並啓用apache ssl模塊。然後它工作 – Nadeeshaan

+1

如果工作接受答案。:) –

0

我不得不使用CI's默認的一些「瘋狂」的問題電子郵件庫通過SSL/TLS認證的SMTP服務器發送電子郵件。我最終改爲使用PHPMailer。