我遇到了很多错误。我已经尝试了跨不同站点的几个建议,删除了父函数,删除了数组,更新了我的php ini文件,没有运气。 这是我遇到的13个错误中的第一个。
遇到PHP错误 严重性:警告 消息:fsockopen()[function.fsockopen]:无法连接到ssl://smtp.googlemail.com:465(无法找到套接字传输“ssl” - 您是否忘记在配置PHP时启用它?) 文件名:libraries / Email.php 行号:1673
有人请帮忙。
class Email extends CI_Controller
{
function index()
{
$config['protocol'] = 'smtp';
$config['smtp_host'] = 'ssl://smtp.googlemail.com';
$config['smtp_port'] = 465;
$config['smtp_user'] = 'myemail@gmail.com';
$config['smtp_pass'] = 'mypassword';
$this->load->library('email');
$this->email->initialize($config);
$this->email->set_newline("\r\n");
$this->email->from('myemail@gmail.com', 'My Name');
$this->email->to('myemail@gmail.com');
$this->email->subject('This is an email test');
$this->email->message('Its working. Great!');
if($this->email->send())
{
echo 'Your email was sent, dude.';
}
else
{
show_error($this->email->print_debugger());
}
}
}
答案 0 :(得分:10)
使用phpinfo(); .php文件中的语句,用于检查openssl扩展名是否实际加载。
在php.ini
启用 php_openssl
extension=php_openssl.so
如果你在Windows上,那么
extension=php_openssl.dll
答案 1 :(得分:0)
Mayowa:
也许我有点迟了,你已经解决了这个问题。
在网上搜索了很多后,我发现对于邮件配置简单的引号和双引号是不一样的。
我使用/application/config/email.php文件,经过多次尝试后我发现这不起作用:
$config['protocol'] = 'smtp';
$config['smtp_host'] = 'ssl://smtp.googlemail.com';
$config['smtp_port'] = 465;
$config['smtp_user'] = 'myemail@gmail.com';
$config['smtp_pass'] = 'mypassword';
但这会:
$config['protocol'] = "smtp";
$config['smtp_host'] = "ssl://smtp.googlemail.com";
$config['smtp_port'] = 465;
$config['smtp_user'] = "myemail@gmail.com";
$config['smtp_pass'] = "mypassword";
希望它有所帮助。