【问题标题】:send mail in codeigniter through live server通过实时服务器在codeigniter中发送邮件
【发布时间】:2019-02-15 15:05:06
【问题描述】:

我正在尝试按照 codeigniter 文档中的说明在 codeignter 中发送电子邮件...但出现错误(无法使用 PHP mail() 发送电子邮件。您的服务器可能未配置为使用此方法发送邮件。)

代码---

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

    $this->email->from('***@gmail.com');
    $this->email->to('***@gmail.com');

    $this->email->subject('Email Test');
    $this->email->message('Testing the email class.');

    $this->email->send();

    echo $this->email->print_debugger();

错误---

Unable to send email using PHP mail(). Your server might not be configured to send mail using this method.
Date: Tue, 11 Sep 2018 06:47:46 +0000
From: <***@gmail.com>
Return-Path: <***@gmail.com>
Reply-To: <***@gmail.com>
User-Agent: CodeIgniter
X-Sender: ***@gmail.com
X-Mailer: CodeIgniter
X-Priority: 3 (Normal)
Message-ID: <5b976512c0d0b@gmail.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
=?UTF-8?Q?Email=20Test?=
Testing the email class.

我知道这个问题可能是重复的,但我没有从这里提出的任何问题中找到任何解决方案...

【问题讨论】:

    标签: php codeigniter email


    【解决方案1】:

    请检查email.php (application\config),可能你的配置有问题检查email,比如SMTP设置

    您可以添加一些配置变量,例如协议。您可以选择邮件、发送邮件或 SMTP。所以,很明显,我选择了邮件,因为我不能使用发送邮件或 SMTP。你最终会得到这样的结果:

    $config['protocol'] = 'mail';
    $this->email->initialize($config);
    

    【讨论】:

      【解决方案2】:

      您的配置可能有问题。您必须在配置文件中设置一些首选项。

      $config['protocol'] = 'sendmail';
      

      你必须初始化配置

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

      【讨论】:

      • 无法打开到 Sendmail 的套接字。请检查设置。无法使用 PHP Sendmail 发送电子邮件。您的服务器可能未配置为使用此方法发送邮件。 -- 我遇到了这个错误
      【解决方案3】:

      您尚未在代码中初始化电子邮件配置设置

      $this->email->initialize($config);
      
      $this->load->library('email');
      $config = Array(
                      'protocol' => 'smtp',
                      'smtp_host' => 'tls://smtp.gmail.com',
                      'smtp_port' => 587,
                      'smtp_user' => '******', // your email
                      'smtp_pass' => '*****', // your password
                      'smtp_timeout'=>20,
                      'mailtype' => 'text',
                      'charset' => 'iso-8859-1',
                      'newline'=>"\r\n",
                      'wordwrap' => TRUE
                     );
      
       $this->email->initialize($config);
       $this->email->from('***@gmail.com');
       $this->email->to('***@gmail.com');
       $this->email->subject('Email Test');
       $this->email->message('Testing the email class.');  
       $this->email->send();
       echo $this->email->print_debugger();
      

      这一定适合你。

      【讨论】:

      • 遇到以下 SMTP 错误:遇到以下 SMTP 错误:无法使用 PHP SMTP 发送电子邮件。您的服务器可能未配置为使用此方法发送邮件。 ---- 我遇到了这个错误
      • 将 smtp_port 从 465 更改为 587 并添加以下代码行。 $this->email->set_newline("\r\n");或 $config 数组中的 'newline'=>"\r\n"。
      • 嘿,感谢您的 cmets... 现在它给出了这个错误 --- 发送 AUTH LOGIN 命令失败。错误:530 5.7.0 必须先发出 STARTTLS 命令。 a8-v6sm22610397oia.24 - gsmtp
      • 请在您的 PHP.ini 中设置以下设置:ini_set("SMTP","tls://smtp.gmail.com"); ini_set("smtp_port","587");
      • 在我的服务器中哪里可以找到这个 PHP.ini
      【解决方案4】:
                  $config['protocol'] = 'smtp';
      
                  $config['smtp_host'] = 'mail.domain.com';
      
                  $config['smtp_port'] = '587';
      
                  $config['smtp_timeout'] = '7';
      
                  $config['smtp_user'] = 'info@domain.com';
      
                  $config['smtp_pass'] = '*******';
      
                  $config['charset'] = 'utf-8';
      
                  $config['newline'] = "\r\n";
      
                  $config['mailtype'] = 'html'; // or html
      
                  $config['validation'] = TRUE; // bool whether to validate email or not      
      
                  $this->email->initialize($config);
                  $this->email->from('info@domain.com', 'Name');
                  $this->email->to($emailTo);
      
      
                  $this->email->subject('Reset your password');
      
                  $body = $this->load->view('forgotmailer', $data, TRUE);
      
                  $this->email->message($body);
      
      
                  $this->email->send();
      

      .................................................. .....................

      $this->load->library('email'); //添加库

      【讨论】:

        猜你喜欢
        • 2018-12-10
        • 2019-07-28
        • 2014-10-15
        • 2012-11-19
        • 1970-01-01
        • 2013-09-06
        • 1970-01-01
        • 2018-01-05
        • 1970-01-01
        相关资源
        最近更新 更多