2012-12-19 168 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
相关问题