codeigniter - fsockopen() : unable to connect to ssl://smtp. gmail.com:465

标签 codeigniter

$config = array(
    'protocol' => 'smtp',
    'smtp_host' => 'ssl://smtp.gmail.com',
    'smtp_port' => '465',
    'smtp_user' => "xxxxxxx@gmail.com", 
    'smtp_pass' => "xxxxxxx", // change it to yours
    'mailtype'  => 'html', 
    'charset'   => 'utf8'
);

$this->load->library('email',$config);

$this->email->set_newline("\r\n");
$this->email->set_crlf( "\r\n" );

$this->email->from($config['smtp_user']);
$this->email->to($email['user_email']);         
$this->email->subject($row['tplsubject']);
$this->email->message(html_entity_decode($email_subject));
$this->email->send();

此代码不起作用,显示错误

A PHP Error was encountered

Severity: Warning

Message: fsockopen(): unable to connect to ssl://smtp.gmail.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: 1689

最佳答案

这不是 codeigniter 问题,而是与 php 设置相关的问题。这个问题的答案可以在这里找到:Unable to find the socket transport "ssl" - did you forget to enable it when you configured PHP?

需要注意的一件事是,在 codeigniter 中,您可以使用电子邮件配置文件来保存所有配置设置。 (因此您不必每次都在 Controller 中定义它们)。您可以通过创建文件来做到这一点:application/config/email.php然后,您可以使用您的设置填充此文件,如下所示:

<?php defined('BASEPATH') OR exit('No direct script access allowed');

$config = array(
    'protocol' => 'smtp', // 'mail', 'sendmail', or 'smtp'
    'smtp_host' => 'your_host',
    'smtp_port' => your_port,
    'smtp_user' => 'your_email',
    'smtp_pass' => 'your_password',
    'smtp_crypto' => 'security', //can be 'ssl' or 'tls' for example
    'mailtype' => 'html', //plaintext 'text' mails or 'html'
    'smtp_timeout' => '4', //in seconds
    'charset' => 'iso-8859-1',
    'wordwrap' => TRUE
);

每次加载库 ( $this->load->library('email'); ) 时,这些设置都会自动加载。

另外我建议您更改您的电子邮件密码 立即因为你在你的问题中写了你的凭据。

关于codeigniter - fsockopen() : unable to connect to ssl://smtp. gmail.com:465,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38203839/

相关文章:

php - Codeigniter $this->db->where() 不工作

php - 代码点火器 : how to write a query when the inside of the table have value ""

php - Codeigniter 表单验证集消息

php - 如何使用 session 将用户事件存储到数据库: Codeigniter

php - Codeigniter 变长参数列表

mysql - codeigniter 使用 case 语句进行连接

php - 构建 REST API 代码 Igniter

php - 无法在 html 中显示用户的详细数据(但可以使用 print_r() 显示数组) "codeigniter"

html - 如何让 CMS 使用我的 css 文件而不是它自己的 css?

php - CodeIgniter:无法使用提供的设置连接到数据库服务器错误消息