0

フォームからメールが届かないという問題があります...

コードは次のようになります。

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("paulharbuz@gmail.com");
                $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 mail() を使用して電子メールを送信できません。この方法を使用してメールを送信するようにサーバーが構成されていない可能性があります。**

これは私の php.ini ファイルからのものですか?

http://php.net/manual/en/ref.mail.phpでこの部分を読むファイルを設定しました

私は解決策を見つけました: config: 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']='gcc.sandbox@gmail.com';
$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);

4

3 に答える 3

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);
于 2013-01-24T08:55:12.953 に答える
0

gmailを使用している場合は、もう少し知識を追加したいので、これは自分のパスワードでは実行できません。特定のGoogleパスワードを使用して実行できます。アプリケーション固有のパスワードが必要などのエラーが発生した場合。Googleで検索して取得し、下のフィールドに入力するよりも. $config['smtp_pass']='アプリケーション固有のパスワード';

于 2013-08-07T21:00:49.643 に答える
0

このコードをヘルパー ファイルに追加し、メールを送信するときに次のメソッドを呼び出してメールを送信するだけです...

 function send_mail($to,$subject,$message) {
    $config = Array(
        'protocol'  => 'smtp',
        'smtp_host' => 'ssl://smtp.googlemail.com',
        'smtp_port' => 465,
        'smtp_user' => 'xxx@xxxx',
        '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;
}
于 2013-01-24T11:16:24.617 に答える