我收到了很多错误。我在不同的站点上尝试了几个建议,删除了父函数,删除了数组,更新了我的php.ini文件,但没有成功。这是我犯的13个错误中的第一个。
遇到PHP错误严重性:警告消息:fsockopen()[function.fsockopen]:无法连接到ssl://smtp.googlemail.com:465(找不到套接字传输"ssl"–配置PHP时忘记启用它了吗?)文件名:librarys/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());
}
}
}
使用phpinfo();php文件中的语句,以检查openssl扩展是否已实际加载。
在您的php.ini
中启用php_opensl
extension=php_openssl.so
如果你在Windows上,那么
extension=php_openssl.dll
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";
希望能有所帮助。