Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php codeigniter电子邮件库_Php_Codeigniter_Email_Smtp - Fatal编程技术网

php codeigniter电子邮件库

php codeigniter电子邮件库,php,codeigniter,email,smtp,Php,Codeigniter,Email,Smtp,我这里有点麻烦。 为什么我不能使用smtp发送电子邮件? 错误如下所示。 代码如下所示 $config = Array( 'protocol' => 'smtp', 'smtp_host' => 'mail.email.com', 'smtp_port' => 25, 'smtp_user' => 'adm

我这里有点麻烦。 为什么我不能使用smtp发送电子邮件? 错误如下所示。

代码如下所示

   $config = Array(
                    'protocol' => 'smtp',
                    'smtp_host' => 'mail.email.com',
                    'smtp_port' => 25,
                    'smtp_user' => 'admin@email.com',
                    'smtp_pass' => 'pass'
                    );
            $this->email->initialize($config);
            $this->email->cc('admin@provider.net');
            $this->email->set_mailtype('html');
            $this->email->from('admin@provider.net', 'Admin');

$this->email->send();
if(!$this->email->send())
{
    show_error($this->email->print_debugger());
}

代码更新:

$this->load->library('email');
$config = Array(
                      'protocol' => 'smtp',
                      'smtp_host' => 'ssl://smtp.googlemail.com',
                      'smtp_port' => 465,
                      'smtp_user' => 'account@gmail.com',
                      'smtp_pass' => 'password',
                      'smtp_timeout' => '4',
                      'mailtype'  => 'html', 
                      'charset'   => 'iso-8859-1'
                );
                $this->email->initialize($config);
                $this->email->set_newline("\r\n");
                //$this->email->set_mailtype('html');
                $this->email->cc('admin@email.co.id');
                $this->email->from('admin@email.co.id', 'Admin');
                $this->email->to('email@email.com');
                $this->email->subject('test online');
                $this->email->message('test email');
                if(!$this->email->send())
                {
                    echo $this->email->print_debugger();
                }
                else
                {
                    echo 'sent';
                }
它返回了这个消息

无法使用PHP mail()发送电子邮件。您的服务器可能未配置为使用此方法发送邮件。

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

$config['protocol'] = 'smtp';
$config['smtp_host'] = 'ssl://smtp.googlemail.com';
$config['smtp_port'] = 465;
$config['smtp_user'] = 'admin@email.com';
$config['smtp_pass'] = 'pass';

$this->email->initialize($config);
            $this->email->cc('admin@provider.net');
            $this->email->set_mailtype('html');
            $this->email->from('admin@provider.net', 'Admin');

$this->email->send();
if(!$this->email->send())
{
    show_error($this->email->print_debugger());
}

尝试此操作……可能会有所帮助。

尝试将smtp_端口参数“465”放在引号中,并将发件人更改为与您用于发送邮件的帐户相同的地址。

已修复! 问题不在于openSSL或脚本, 问题是SELinux禁止httpd发送邮件
解决方案是设置电子书httpd\u can\u sendmail on

是否在本地主机上尝试?不,在web服务器上,我在本地主机上没有问题尝试将其添加到config
$config[''u smtp\u auth']=TRUE
@tomexsans仍然没有区别,我必须使用gmail帐户吗?如果你想在本地主机上这样做,你必须为安全性较低的应用程序添加gmail访问权限
https://www.google.com/settings/security/lesssecureapps
很抱歉,此问题已经解决,主要问题是SELINUX,通过在上执行setsebool httpd_can_sendmail可以解决此问题