Setting Up Emails in Code Igniter 2.02

2020-07-11 04:55发布

I’m getting a lot of errors. And I've tried several suggestion across different sites, deleted the parent function, removed the array, updated my php ini file, no luck. This is the first of 13 errors I’m getting.

A PHP Error was encountered Severity: Warning Message: fsockopen() [function.fsockopen]: unable to connect to ssl://smtp.googlemail.com:465 (Unable to find the socket transport “ssl” – did you forget to enable it when you configured PHP?) Filename: libraries/Email.php Line Number: 1673

Someone please help.

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

}

2条回答
Summer. ? 凉城
2楼-- · 2020-07-11 05:28

Use a phpinfo(); statement in a .php file to check if the openssl extension actually loaded.

In your php.ini enable php_openssl

extension=php_openssl.so

if you are on Windows, then

extension=php_openssl.dll
查看更多
来,给爷笑一个
3楼-- · 2020-07-11 05:40

Mayowa:

Perhaps I'm a little late and you already has this solved.

After searching a lot in the web I found out that for mail configuration simple quotes and double quotes is not the same.

I use the /application/config/email.php file and after many attempts I found out that this will not work:

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

But this will:

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

Hope it helps.

查看更多
登录 后发表回答