2013-01-24 152 views
0

你好,大家好我有一些問題,這意味着我不從形式reciev郵件...CodeIgnitor發送電子郵件

的代碼如下所示:

public function send_email(){ 
     $this->load->library("form_validation"); 


     $this->form_validation->set_rules("fullName", "Full Name", "required|alpha|xss_clean"); 
     $this->form_validation->set_rules("email", "Email Address", "required|valid_email|xss_clean"); 
     $this->form_validation->set_rules("message", "Message", "required|xss_clean"); 

      if($this->form_validation->run() == FALSE){ 
       $data["message"] = ""; 
       $this->load->view("site_header"); 
       $this->load->view("site_nav"); 
       $this->load->view("content_comment", $data); 
       $this->load->view("site_footer"); 
      }else{ 
       $data["message"] = "The email was successfully been sent!"; 


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


       $this->email->from(set_value("email"), set_value("fullName")); 
       $this->email->to("[email protected]"); 
       $this->email->subject("Message from our form"); 
       $this->email->message(set_value("message")); 

       $this->email->send(); 

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


       $this->load->view("site_header"); 
       $this->load->view("site_nav"); 
       $this->load->view("content_comment", $data); 
       $this->load->view("site_footer"); 
      } 
    } 

,我得到一個錯誤,看起來像這樣:

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

這是來自我的php.ini文件嗎?

我已經把我的文件中讀取這個零件http://php.net/manual/en/ref.mail.php

我找到了解決辦法:創建配置文件:email.php看起來像這樣

<?php if (! defined('BASEPATH')) exit('No direct script access allowed'); 
/* 
| ------------------------------------------------------------------- 
| EMAIL CONFING 
| ------------------------------------------------------------------- 
| Configuration of outgoing mail server. 
| */ 

$config['wordwrap'] = FALSE; 
$config['mailtype'] = 'html'; 
$config['crlf'] = '\r\n'; 
$config['charset']='utf-8'; 
$config['newline']="\r\n"; 
$config['priority']=1; 
$config['protocol']='smtp'; 
$config['smtp_host']='ssl://smtp.googlemail.com'; 
$config['smtp_port']='465'; 
$config['smtp_timeout']='30'; 
$config['smtp_user']='[email protected]'; 
$config['smtp_pass']='qwaszx12'; 
$config['newline']="\r\n"; 

/* End of file email.php */ 
/* Location: ./system/application/config/email.php */ 

然後在你的主加載此控制器如:$this->email->initialize($this->config->config);就是這樣!

+0

看看[這裏] [1],也許你可以找到答案。 [1]:http://stackoverflow.com/questions/3859958/codeigniter-unable-to-send-email-using-php-mail – Briganti

回答

0

當你想發送郵件下面的方法來發送電子郵件的代碼只需添加到您的輔助文件,並調用該函數...

function send_mail($to,$subject,$message) { 
    $config = Array(
     'protocol' => 'smtp', 
     'smtp_host' => 'ssl://smtp.googlemail.com', 
     'smtp_port' => 465, 
     'smtp_user' => '[email protected]', 
     'smtp_pass' => 'xxxx', 
     'mailtype' => 'html', 
     'charset' => 'iso-8859-1' 
    ); 
    $this->load->library('email',$config); 
    $this->email->set_newline("\r\n"); 

    $this->email->from($config['smtp_user'],"Your name"); 
    $this->email->to($to); 
    $this->email->subject($subject); 
    $this->email->message($message); 
    $result = $this->email->send(); 
    return $result; 
} 
+0

我找到了解決方案: – emcee22

0
$string = 'mail content'; 
$headers = 'MIME-Version: 1.0' . "\r\n"; 
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; 
$headers .= 'From: z' . "\r\n"; 
mail(email, 'subject', $string, $headers); 
0

我想多一點知識加入到如果您使用的是Gmail,所以這不能通過您自己的密碼完成,可以使用特定的Google密碼完成。如果您遇到需要應用程序特定密碼的錯誤。 比在谷歌搜索它,並得到一個和我在下面的字段中鍵入。 $ config ['smtp_pass'] ='應用程序專用密碼';