【问题标题】:codeigniter smtp mail not working properlycodeigniter smtp 邮件无法正常工作
【发布时间】:2021-07-05 05:53:03
【问题描述】:

我使用 gmail smtp 电子邮件库从 codeingiter 项目发送邮件。 但提交表单时显示以下错误:

A PHP Error was encountered
Severity: Warning

Message: mail(): Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set()

Filename: libraries/Email.php

Line Number: 1902

Backtrace:

File: D:\xampp\htdocs\projectName\application\controllers\Users.php
Line: 66
Function: send

File: D:\xampp\htdocs\projectName\index.php
Line: 315
Function: require_once

我的控制器功能代码:

$config = array(
            'protocol'  => 'smtp',
            'smtp_host' => 'smtp.gmail.com',
            'smtp_port' => 587, //if 80 dosenot work use 24 or 21
            'smtp_user'  => '**',  
            'smtp_pass'  => '**',  
            '_smtp_auth' => true,
            'smtp_crypto' => 'tls',
            'protocol' => 'smtp',
            'mailtype'  => 'html', 
            'charset'    => 'iso-8859-1',
            'wordwrap'   => TRUE
       );
             $this->load->library('email', $config);
             $this->email->set_newline("\r\n");
             $this->email->from('users@gmail.com');  //same email u use for smtp_user 
             $this->email->to($this->input->post('user_email'));
             $this->email->subject($subject);
             $this->email->message($message);
                
        if($this->email->send())

我的 php.ini 文件:

[mail function]
; For Win32 only.
; http://php.net/smtp
SMTP=localhost
; http://php.net/smtp-port
smtp_port=25

但是邮件仍然没有发送。

我的控制器有问题吗。

【问题讨论】:

    标签: php codeigniter email smtp


    【解决方案1】:

    您的代码的问题是您没有初始化电子邮件设置。 $this->load->library('email', $config); 行上的控制器代码是错误的。邮件库加载完成后,需要单独初始化邮件设置。

    看看这段代码。

    $config['protocol'] = 'smtp';
    $config['smtp_host'] = 'smtp.gmail.com';
    $config['smtp_port'] = 587, //if 80 dosenot work use 24 or 21
    $config['smtp_user']  = '**';  
    $config['smtp_pass']  = '**';  
    $config['_smtp_auth'] = true,
    $config['smtp_crypto'] = 'tls';
    $config['protocol'] = 'smtp';
    $config['mailtype']  = 'html'; 
    $config['charset']    = 'iso-8859-1';
    $config['wordwrap']   = TRUE
    
    $this->load->library('email');
    $this->email->initialize($config);
    
    $this->email->set_newline("\r\n");
    $this->email->from('users@gmail.com');  //same email u use for smtp_user 
    $this->email->to($this->input->post('user_email'));
    $this->email->subject($subject);
    $this->email->message($message);
    $this->email->send();
    

    更多信息请查看here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-11-09
      • 2017-06-25
      • 2012-10-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-16
      • 2015-02-15
      相关资源
      最近更新 更多