2012-12-19 163 views
1
  $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"); 

     $this->email->from('[email protected]','me'); 
     $this->email->to($this->input->post('email')); 
     $this->email->subject("Confirm your account."); 

     $message = '<p>Thank you for signing up!</p>'; 
     $message .= '<p><a href="'; 
     $message .= base_url(); 
     $message .= 'main/register_user'; 
     $message .= $key; 
     $message .= '">Click here!</a>to sign up</p>'; 
     $this->email->message($message); 

我在youtube上關注了一些來自phpacademy的Codeigniter教程。其中一個教程將電子郵件發送給用戶,以便他們可以註冊。我試圖通過Gmail帳戶發送,使用別人的質疑,CI論壇,我已經得到了上面的代碼,但我得到了以下錯誤:使用Codeigniter和WAMP通過gmail發送電子郵件

消息:的fsockopen()[function.fsockopen]:無法連接到> ssl://smtp.googlemail.com:465(無法找到套接字傳輸「SSL」 - 你忘了>當你配置PHP時啓用它?)

文件名:庫/電子郵件。 PHP

-

消息:fwrite的()預計參數1是資源,給定

文件名布爾:庫/ Email.php

-

消息:與fgets()預計參數1至要資源,布爾給

文件名:庫/ Email.php

我迷失了我需要採取的確切步驟來正確設置它。另外,當我將其從本地移動到實際的虛擬主機時,它是否仍能正常使用我的Gmail?

非常感謝。

回答

3

請確保您有mod_ssl的活躍Apache服務器上

+1

哇。我覺得自己像個白癡。我在這裏大吼我的ini文件嚇唬我的貓。 這解決了一切。非常感謝! – anticodon

3

您嘗試通過SSL進行連接,那麼您應該在您的php.ini中激活OpenSSL模塊php_openssl.dll

+0

非常感謝,我現在啓用了OpenSSL並且它可以工作。 – anticodon

+0

不用擔心。下次你想想:D – Stony

1

代碼是這樣的:

$mail->SMTPSecure = 'tls'; // secure transfer enabled REQUIRED for GMail<br/> 
$mail->Host = 'smtp.gmail.com';<br/> 
$mail->Port = 587; 
從這個

除此之外,配置Apache和WAMP這樣的:

  1. 取消註釋extension=php_openssl.dll在php.ini文件中
  2. 檢查ssl_module在apache模塊中處於活動狀態les
相關問題