2016-08-21 37 views
0

私は一日中これを試していましたが、私の電子メールアドレスにフォームの情報を含むhtml連絡フォームから電子メールを送信する方法がわかりません。私はPHPに新しいです。PHPを使用してhtmlフォームから電子メールを送信

Iveは無料のウェブホスティングにアップロードすることでこれを実行しようとしました。私はメッセージ「成功!私は自分のhtmlフォームで送信ボタンを押すが実際には電子メールは送られない。

何か助けていただければ幸いです。

PHPスクリプト:

<?php 

//Subject 
$subject ="Contact Form Submission"; 

// Name 
$name =$_POST['InputName']; 

// Message 
$message =$_POST['InputMessage']; 

//Mail of Sender 
$email =$_POST['InputEmail']; 

//From 
$header = "From:$name<$email>"; 

$send_contact=mail("[email protected]",$subject,$message,$header); 

//Check if mail was sent 
if($send_contact){ 
echo "Success!"; 
} 
else { 
echo "Error!"; 
} 
?> 

EDITは:試行錯誤の1一日の後にそれを考え出しました。問題は、私が使っていた無料のWebホストでした。変更されたホストとコードが正常に動作するようになりました。これは将来誰かを助けてくれることを願っています。助けてくれてありがとう。

+0

あなたはまだそれを理解しませんでしたか? – Bisquitue

+0

@Bisquitueはまだそれを理解しようとしています –

答えて

1

を支援私はあなたのコードがうまくいかない理由を知っています。それはずっと前に私に起こった。あなたのコードが動作しない理由はされているので:あなたはヘッダに「から」渡すと

  • 、PHPはあなたの
    サーバーの既存の電子メールアカウントを期待しています。 例:$headers = 'From: [email protected]';
  • まず、サーバーに電子メールアカウントを作成する必要があります。そしてFromheaderに入れて、作成したばかりのメールアドレスを入力します。
  • FromフィールドはFromではありません。
  • <?php
  • $email = $_POST["InputEmail"];
  • $subject = $_POST["InputSubject"];
  • $message = "From: ".$email.", ".$_POST["InputMessage"]; //あなたはここに//ここ
  • $headers = 'From: [email protected]';入力フォームからメールアドレスを入れuは電子メールを送信したいから、指定したメールアドレスです。(すなわち、サーバーの電子メールアドレス)
  • mail($to, $subject, $message, $headers)
  • ?>

私はこれが仕事をすると確信している:)

+0

こんにちは!あなたの説明は理にかなっています。あなたが言ったことを正確にコピーしました。私の無料のWebホスティングプロバイダと電子メールアカウントを作成しました。スクリプトをテストしましたが、電子メールはまだ送信されませんでした。しかし、問題は、私は[email protected]から自分のGmailアドレスに電子メールを送ることができますが、私のPHPスクリプトではできないということです。何か案は? –

+0

少しのテストをしてください: 最初にフォームの値を使用する前にこれをテストしてください(文字列で): ' $ email =" [email protected] "; $ to = "[email protected]"; $件名= "テスト対象"; $ message = "テストメッセージ"; $ headers = '投稿者:[email protected]'; mail($ to、$件名、$メッセージ、$ヘッダー); 上記の変更はありません。あなたのgmailアカウントと**[email protected]**で$を変数にコピーして貼り付けて置き換えてください。それがうまくいくなら問題はあなたのPHPスクリプトで解決されます。 –

+0

私はちょうどあなたが言ったことを正確にコピーして貼り付けましたが、まだメールは送信されませんでした。私が使用したPHPスクリプトとHTMLフォームコードで私の最初の投稿を更新しました。私は本当にここで何がうまくいかないのか理解していない。 **[email protected]** とサーバーメールアドレス:**[email protected] –

0

これを撮影してください。

むしろ$メールとして電子メールを設定するよりも、それは実際にフォームに入力された掲示、電子メールを通過ますように私は、あなたが少し周り$header変数です変更。これは名前にも当てはまります。

また、新しい変数を設定するのではなく、ifステートメントのパラメータを使ってmail関数を渡すようにしました。

$headers = "From: " . $name . "<" . $email . ">"; // notice new concatenation 

if(mail("[email protected]", "Contact Form Submission", $message, $headers)){ 
    // success message 
} else { 
    // error message 
} 

本当に役立ちますように!問題がある可能性があります「=」の後にスペースを追加:)

+0

こんにちは私はそれをテストし、それはまだ残念ながら働いていないようです。他のヒントはありますか? –

0

てみてください、

問題が解決しない場合は、この

<?php 
    $emailvariable = $_POST['InputEmail'] 


    $to  = '[email protected]'; 
    $subject = "Form" 
    $message = $_POST['InputMessage']; 
    $headers = "From: $emailvariable"; 

    mail($to, $subject, $message, $headers); 
    ?> 

を使用しようとすることを願って、これは

+0

私はあなたの解決策を使用しようとしましたが、電子メールは送信されませんでした。私は本当に問題を理解しているようです。 –

+0

ドメインなどであなたのウェブサイトをホストしていますか?あなたがいないなら、メールサーバーを使ってメールを送ることができないからです。だからwampやmampでこれを行うことはできません。あなたがウェブサイト上でそれをホストしているなら、$ _POST ['InputEmail']から大文字を削除してみてください – Bisquitue

+0

無料でドメイン名のウェブサイトでホストしていますウェブホスト。 $ _post ['inputemail']のようなものを意味しますか? –

関連する問題