我在我的网络应用程序中使用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());
}
这有什么问题?
谢谢..
答案 0 :(得分:2)
应该启用Open 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();
这对我有用
答案 1 :(得分:0)
我使用CI的默认电子邮件库通过SSL / TLS身份验证的SMTP服务器发送电子邮件时遇到了一些“疯狂”问题。我最终使用了PHPMailer。