1

我正在为我的 Web 应用程序使用 codeigniter,并且我使用 codeigniter 的电子邮件功能来发送电子邮件。但是当我尝试发送电子邮件时出现以下错误。

找不到套接字传输“ssl” - 您是否在配置 PHP 时忘记启用它

这是我用来获得功能的代码。

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

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

    $this->email->from('xxxx@gmail.com','Sample');
    $this->email->to('xxxxx@gmail.com');
    $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());
    }

这有什么问题?

谢谢..

4

2 回答 2

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();

这对我有用

于 2013-09-23T15:47:55.910 回答
0

使用 CI 的默认电子邮件库通过 SSL/TLS 身份验证的 SMTP 服务器发送电子邮件时,我遇到了一些“疯狂”的问题。我最终改用 PHPMailer。

于 2014-04-14T11:41:36.947 回答