在codeigniter中发送电子邮件问题

时间:2013-09-24 13:31:54

标签: php codeigniter grocery-crud

我在codeigniter中有配置电子邮件

    'protocol' => 'smtp',
                    'smtp_host' => 'ssl://smtp.gmail.com',
                    'smtp_port' => '465',
                    'smtp_user' => '-----',
                    'smtp_pass' => '-----',
                    'mailtype' => 'html',
                    'charset' => 'utf-8'

$this->load->library('email', $this->session->userdata('config'));
            $this->email->from('new@gmail.com', 'Rtlx Team');
            $this->email->to($email);
            $message = "Dear ";
            $this->email->subject('Rtlx Team - Account Verification');
            $this->email->message($message);
            $this->email->send();
            $this->email->clear();

但它显示以下错误:

  

消息:mail()[function.mail]:无法连接到“localhost”端口465的邮件服务器,验证php.ini中的“SMTP”和“smtp_port”设置或使用ini_set()

     

消息:mail()期望参数1为字符串,给定数组为

     

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

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

您错误地将电子邮件库加载为$newitem = DB::table('itemregistrations') ->when(request('age'), function($query){ return $query->whereRaw('YEAR(CURDATE()) - lahir_yy >= ?', [request('age')]);}) ->get();

因此将其加载为$this->load->library('email',$this->session->userdata('config'));并将其初始化为$this->load->library('email');

在下面的示例中,我采用了$this->email->initialize($this->session->userdata('config'));数组,但是您也可以像使用的那样在会话中采用自己的配置。但是将所有选项设置为我在$config中设置的选项,则可以在会话的变量中设置它。

下面的完整代码:

$config