使用Codeigniter和WAMP通过gmail发送电子邮件

时间:2012-12-19 18:54:35

标签: php codeigniter email wamp

            $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('me@gmail.com','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论坛我已经得到上面的代码,但我收到以下错误:

  

消息:fsockopen()[function.fsockopen]:无法连接到&gt; ssl://smtp.googlemail.com:465(无法找到套接字传输“ssl” - 您是否忘记&gt;启用它什么时候配置PHP?)

     

文件名:libraries / Email.php

-

  

消息:fwrite()期望参数1为资源,布尔值为

     

文件名:libraries / Email.php

-

  

消息:fgets()期望参数1为资源,布尔值为

     

文件名:libraries / Email.php

我迷失了我需要采取的确切步骤来正确设置它。此外,当我将其从本地移动到实际的webhost时,它仍能正常使用我的Gmail吗?

非常感谢。

3 个答案:

答案 0 :(得分:3)

您尝试通过SSL连接,然后应激活 php.ini 中的OpenSSL模块php_openssl.dll

答案 1 :(得分:3)

确保在apache服务器上有mod_ssl活动

答案 2 :(得分:1)

代码如下:

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

除此之外,配置你的apache和wamp如下:

  1. 在php.ini文件中取消注释extension=php_openssl.dll
  2. 检查apache模块中的ssl_module活动