2013-06-06 12 views
5

コントローラと私の連絡先フォームをすべてセットアップしました。しかし、連絡先ページで[送信]をクリックすると、エラーは表示されませんが、メールは受信されません。なぜ私は実際に電子メールを受信して​​いないのですか?私はどんな助けにも感謝します。CodeIgniter経由でコンタクトフォームで電子メールを送信するにはどうすればいいですか?

<div class="inner-content" id="contact-content"> 

    <title>CSS3 Contact Form</title> 
    <div id="contact"> 
    <h1>Send an email</h1> 
    <form method="post" action="/home/email"> 
     <fieldset> 
     <label for="name">Name:</label> 
     <input name="name" id="name" type="text" placeholder="Enter your full name"> 
     <label for="email">Email:</label> 
     <input name="email" id="email" type="email" placeholder="Enter your email address"> 
     <label for="message">Message:</label> 
     <textarea name="message" id="message" placeholder="Type your message here..."></textarea> 
     <input type="submit" value="Send message"> 
     </fieldset> 
    </form> 
    </div> 
</div> 
+1

まず、メールを正しく送信するようにSMTPサーバを設定してください。 –

+0

デバッガは何をエコーアウトしますか? –

+0

出力はまさにこれです: あなたのメッセージが正常に以下のプロトコルを使用して送信されています:「お名前」 リターンパス:MAIL FROM: Ccを:[email protected] のBcc:それらtheir- @ example.com 返信先: "[email protected]" X-送信者:[email protected] X-Mailerの:CodeIgniterの X-優先度:3(ノーマル) メッセージ-ID: Mime-Version:1.0 コンテンツタイプ:text/plain; charset = utf-8 コンテンツ転送エンコーディング:8bit =?utf-8?Q?Email_Test?= 私の名前isdfdfdf、このメールクラスをテスト中です。私のメールアドレスは[email protected]です。 私の電話番号はこれは私のメッセージですdfdfdfdfdfsdafsafsdfsfdsfdsfsdf ありがとう!! –

答えて

1

php.iniファイルにphp_openssl.dllを有効にしてGmailに使用してみてくださいを使用してみてください。 Pascal SpruitまたはOmadeの答えが働くでしょう。 php.iniファイルを編集した後、ローカルサーバーを再起動することを忘れないでください。

0

それは

$config['protocol'] = 'sendmail'; 
$config['mailpath'] = '/usr/sbin/sendmail'; 
$config['charset'] = 'iso-8859-1'; 
$config['wordwrap'] = TRUE; 

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

てみてください最初のメールクラスを設定しようとすることができます場合:

<?php if (! defined('BASEPATH')) exit('No direct script access allowed'); 

class Home extends CI_Controller { 
    public function index() 
    { 
     $this->template->build('home'); 
    } 

    public function email() { 
     $name = $this->input->post('name'); 
     $email = $this->input->post('email'); 
     $phone_number = $this->input->post('phone_number'); 
     $message = $this->input->post('message'); 
     $this->load->library('email'); 
     $this->email->from($email, 'Your Name'); 
     $this->email->to('[email protected]'); 
     $this->email->cc('[email protected]'); 
     $this->email->bcc('[email protected]'); 
     $this->email->subject('Email Test'); 
     $this->email->message(
      'My name is'.$name.', Im testing this email class. My email is '.$email. '. My Phone number is '.$phone_number. 
     ' This is my message '.$message. ' Thanks!!' 
     ); 
     $this->email->send(); 
     echo $this->email->print_debugger(); 
     $this->template->build('home'); 
    } 
} 

そして、ここでは私のコンタクトページビューの私のコードです:ここでは、コントローラのための私のコードですこのコードをemail-> send()関数に追加して、応答が何であるか確認してください。

変更$this->email->send(); To

エラー文字列がエコーされない場合、問題はCIではなく、おそらくメールサーバーで発生します。

+0

ありがとうございますが、出力はありません。 「送信」をクリックすると、Firefoxのページが表示されます。 文書が期限切れになりました この文書はもう使用できません。 要求されたドキュメントはFirefoxのキャッシュでは使用できません。 –

+1

Gmailにメールを送信してみます。いくつかのサーバーがテスト電子メールをブロックしている可能性があります。 –

+0

私はgmailに送った。それでも動作しませんでした。 –

0

は、Gmailの

$config = Array(
     'protocol' => 'smtp', 
     'smtp_host' => 'ssl://smtp.googlemail.com', 
     'smtp_port' => '465', 
     'smtp_user' => '[email protected]', 
     'smtp_pass' => 'password', 
     'mailtype' => 'html', 
     'starttls' => true, 
     'newline' => "\r\n" 
    ); 

$this->load->library('email', config); 
$this->email->from('[email protected]', 'George'); 
$this->email->to('[email protected]'); 
$this->email->subject('hey this is an email'); 
$this->email->message('this is the content of the email'); 
$this->email->send(); 
echo $this->email->print_debugger(); 
1
$config = Array(
     'protocol' => 'smtp', 
     'smtp_host' => 'ssl://smtp.googlemail.com', 
     'smtp_port' => '465', 
     'smtp_user' => '[email protected]', 
     'smtp_pass' => 'yourpassword', 
     'mailtype' => 'html', 
     'starttls' => true, 
     'newline' => "\r\n" 
    ); 

$this->load->library('email', $config); 
$this->email->from('[email protected]', 'Jodie'); 
$this->email->to('[email protected]'); 
$this->email->subject('testing email'); 
$this->email->message('This shows the email worked'); 
$this->email->send(); 
echo $this->email->print_debugger(); 
0

私もこの同じ問題を抱えていましたが、私はGmailですべてのことがうまくいっていることを理解していますが、メールのみが送信されません。

もし私が$email = $this->input->post('useremail');を送っているのであれば、Gmailには載っていません。それは、show mailが正常に送信されたか、または "if"条件に渡されたものがメールボックスに入っていないメールです。しかし、もし私が名前の電話パスワードまたは何かのようなものを渡すならば、それはすべてうまくいく。 電子メールのCIまたはphpに制限はありますか? 私はサーバー上でhtmlコンテンツを正常に送信していますが、メールは送信されないためです。 メールを含むがローカルホストを介してすべてのものを送信するが、私はhostingerで自分のウェブサイトを開き、すべてがうまくいくように設定する。連絡フォームにメールを入れる方法を教えてください。あなたの知識を教えてください。

+0

まだ完全な解決策は得られていませんが、あなたの$ email = $ this-> input-> post( 'email ');また、フォームのメッセージ部分を削除し、チェックしてください。私のメールボックスにメールが届くのですか? –

関連する問題