在Code Igniter 2.02中设置电子邮件


Setting Up Emails in Code Igniter 2.02

我收到了很多错误。我在不同的站点上尝试了几个建议,删除了父函数,删除了数组,更新了我的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";

希望能有所帮助。