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('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]:无法连接到 >ssl://smtp.googlemail.com:465(无法找到套接字传输“ssl” - 您是否忘记在配置 PHP 时启用它? )

文件名:库/Email.php

--

消息:fwrite() 期望参数 1 是资源,给定的布尔值

文件名:库/Email.php

--

消息:fgets() 期望参数 1 是资源,给定的布尔值

文件名:库/Email.php

我不知道正确设置它需要采取的确切步骤。另外,当我将它从本地移动到实际的网络主机时,它是否仍能与我的 gmail 一起正常工作?

非常感谢你。

4

3 回答 3

3

您尝试通过 SSL 连接,那么您应该php_openssl.dllphp.ini中激活 OpenSSL 模块。

于 2012-12-19T18:56:52.997 回答
3

确保您在 apache 服务器上激活了 mod_ssl

于 2012-12-19T18:58:29.897 回答
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_moduleapache 模块中的活动
于 2013-08-27T17:35:12.573 回答