簡體   English   中英

發送電子郵件時,CodeIgniter生成錯誤

[英]CodeIgniter generates error when sending email

我正在使用下面的代碼使用codeigniter發送電子郵件,但我不斷收到錯誤消息

無法使用PHP mail()發送電子郵件。 您的服務器可能未配置為使用此方法發送郵件。

        $this->email->from("kariuki.john@gmail.com", "Name");
        $this->email->to('johnkariukin@gmail.com');
        $this->email->cc('contact@johnkariuki.co.ke');
        $this->email->subject("New Email from on johnkariuki.co.ke");
        $this->email->message("abdfdfj\nfdgdfgdf");

        if($this->email->send())
        {
            echo "works";

        } else {

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

可能是什么問題? 我無法在線找到有效的解決方案。 可能是什么問題? 我無法在線找到有效的解決方案。 我已經在構造函數中加載了電子郵件庫

默認情況下,您的電子郵件協議設置為'mail',但是您可能需要將其切換為'sendmail'

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

這將需要安裝sendmail的服務器上( sudo apt-get install sendmail ,如果你在Ubuntu)。

$this->email->send()使用PHP的內置mail()函數,根據這篇文章 ,即使您的協議未明確設置為'sendmail',它可能已經嘗試使用sendmail。

PHP mail功能需要一台郵件服務器才能正常工作,如果運行Web應用程序的系統未進行設置和配置,則您將收到此錯誤。 幸運的是,您可以通過使用SMTP更改默認協議,以使用免費郵件服務器(例如gmail)。 查看CodeIgniter's email class文檔,看看是否可以建立與電子郵件主機的SMTP連接。

這是我如何設置本地主機郵件發送的示例:

private function mail($to, $subject, $message){
    $this->load->library('email');
    if(!IN_PRODUCTION){ //Defined in the environment switch in index.php
        $this->email->initialize(
            array(
                'protocol' => 'smtp',
                'smtp_host' => 'ssl://smtp.gmail.com',
                'smtp_user' => '******@gmail.com',
                'smtp_pass' => '******',
                'smtp_port' => 465,
                'smtp_timeout' => 7,
                'mailtype' => 'html',
                'crlf' => "\r\n",
                'newline' => "\r\n",
                'validation' => TRUE
            )
        );
    }
    $this->email->from('******@gmail.com', 'iam-decoder');
    $this->email->to($to);
    $this->email->subject($subject);
    $this->email->message($message);
    return $this->email->send();
}

在發送郵件之前配置這些

$config = Array(
    'protocol' => 'smtp',
    'smtp_host' => 'ssl://smtp.googlemail.com',
    'smtp_port' => 465,
    'smtp_user' => 'xxx',
    'smtp_pass' => 'xxx',
    'mailtype'  => 'html', 
    'charset'   => 'iso-8859-1'
);
$this->load->library('email', $config);
$this->email->set_newline("\r\n");

// Set to, from, message, etc.

$result = $this->email->send();

然后添加其余郵件

$this->email->from("kariuki.john@gmail.com", "Name");
$this->email->to('johnkariukin@gmail.com');
$this->email->cc('contact@johnkariuki.co.ke');
$this->email->subject("New Email from on johnkariuki.co.ke");
$this->email->message("abdfdfj\nfdgdfgdf");

if($this->email->send())
   {
     echo "works";

   } else {

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

閱讀有關Codeigniter 電子郵件幫助程序類的更多信息

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM