无法在Codeigniter中发送电子邮件

时间:2017-01-29 13:54:24

标签: php codeigniter sendmail

我正在使用Codeigniter从我的PHP脚本发送电子邮件。

我发送邮件的代码是:

// Library must be loaded first 
            $this->load->library('email');


            $config = array(
                        'protocol'      =>      'smtp',
                        'smtp_host'     =>      'smtp.gmail.com',
                        'smtp_port'     =>      587,
                        'smtp_user'     =>      'khaksar445@gmail.com',
                        'smtp_pass'     =>      'mypass'
                    );


            $this->email->initialize($config);

            $this->email->from($email, 'User');
            $this->email->to('khaksar445@gmail.com');
            $this->email->subject($sub);
            $this->email->message($body);


            if($this->email->send())
            {
                echo '<div class="alert alert-success>Email sent successfully</div>"';
            }
            else
            {
                echo $this->email->print_debugger();
            }

我得到的错误是:

  

无法使用PHP SMTP发送电子邮件。您的服务器可能不是   配置为使用此方法发送邮件。

有没有办法解决这个问题。我们将不胜感激。

2 个答案:

答案 0 :(得分:0)

设置config像这样..

$config = Array(
  'protocol' => 'smtp',
  'smtp_host' => 'ssl://smtp.googlemail.com',
  'smtp_port' => 465,
  'smtp_user' => 'xxx@gmail.com', // change it to yours
  'smtp_pass' => 'xxx', // change it to yours
  'mailtype' => 'html',
  'charset' => 'iso-8859-1',
  'wordwrap' => TRUE
);

答案 1 :(得分:0)

尝试使用sendmail

$config['protocol'] = 'sendmail';
$config['mailpath'] = '/usr/sbin/sendmail';
$config['charset'] = 'iso-8859-1';
$config['mailtype'] = 'html';

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

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

$this->email->from('khaksar445@gmail.com', 'SIte Name ');
$this->email->to('to@address.lk');
  

仅供参考:如果你使用gmail,那很好。但你总是无法跟踪实际的错误。使用服务器邮件主机。如果有什么东西你知道它的编码问题。