2017-04-20 14 views
1

私は連絡フォームを処理するためのphpメーラーを持つノードJSフレームワーク上に構築された簡単なWebサイトを持っています。私はそれが動作するように見えることができないと、ノードJS自体にPHPのコードを処理することができないという固有の問題があるのだろうかと思います。私が打つたびノードJSアプリケーションはPHPのメーラーコードを処理していません

<?php 
// Check for empty fields 
if(empty($_POST['name'])  || 
    empty($_POST['email'])  || 
    empty($_POST['phone'])  || 
    empty($_POST['message']) || 
    !filter_var($_POST['email'],FILTER_VALIDATE_EMAIL)) 
    { 
    echo "No arguments Provided!"; 
    return false; 
    } 

$to = '[email protected]'; // Add your email address inbetween the '' replacing [email protected] - This is where the form will send a message to. 
$email_subject = "Website Contact Form: $name"; 
$email_body = "You have received a new message from your website contact form.\n\n"."Here are the details:\n\nName: $name\n\nEmail: 
$email_address\n\nPhone: $phone\n\nMessage:\n$message"; 
$headers = "From: [email protected]\n"; // This is the email address the generated message will be from. We recommend using something like [email protected] 
$headers = "Reply-To: $email_address"; 
mail($to,$email_subject,$email_body,$headers); 
return true;    
?> 

」:これは、コンタクトフォームのコードが含ま1つのHTMLページ、index.htmlを、しています。同じフォルダレベルで

<div class="container"> 
     <div class="row"> 
      <div class="col-lg-8 col-lg-offset-2 col-md-10 col-md-offset-1"> 
       <h2 class="featurette-heading" style="text-align: center;">Message</h2> 
       <h3 class="text-muted">Want to book an appointment? Send me a message and I'll contact you. Make sure you include your name, phone number, email, and when you'd like to book. It's that easy!</h3> 
       <form name="sentMessage" id="contactForm" action="contact_me.php" method="post" novalidate> 
        <div style="background-color: white; border: 1px solid #0085a1;" class="row control-group"> 
         <div class="form-group col-xs-12 floating-label-form-group controls"> 
          <label></label> 
          <input type="text" class="form-control" placeholder="Name" id="name" name="name" required data-validation-required-message="Please enter your name."> 
          <p class="help-block text-danger"></p> 
         </div> 
        </div> 
        <div style="background-color: white; border: 1px solid #0085a1;" class="row control-group"> 
         <div class="form-group col-xs-12 floating-label-form-group controls"> 
          <label></label> 
          <input type="email" class="form-control" placeholder="Email Address" id="email" name="email" required data-validation-required-message="Please enter your email address."> 
          <p class="help-block text-danger"></p> 
         </div> 
        </div> 
        <div style="background-color: white; border: 1px solid #0085a1;" class="row control-group"> 
         <div class="form-group col-xs-12 floating-label-form-group controls"> 
          <label></label> 
          <input type="tel" class="form-control" placeholder="Phone Number" id="phone" name="phone" required data-validation-required-message="Please enter your phone number."> 
          <p class="help-block text-danger"></p> 
         </div> 
        </div> 
        <div style="background-color: white; border: 1px solid #0085a1;" class="row control-group"> 
         <div class="form-group col-xs-12 floating-label-form-group controls"> 
          <label></label> 
          <textarea rows="5" class="form-control" placeholder="Message" id="message" name="message" required data-validation-required-message="Please enter a message."></textarea> 
          <p class="help-block text-danger"></p> 
         </div> 
        </div> 
        <br> 
        <div id="success"></div> 
         <div class="row"> 
          <div class="form-group col-xs-12"> 
           <button type="submit" class="btn btn-primary">Send</button> 
          </div> 
         </div> 
        </div> 
       </form> 
      </div> 
     </div> 
    </div> 

は、contact_me.phpファイルがあります私のフォームの一番下に「submit」と表示されたら、「POST/contact_me.phpできません」というエラーが表示されます。いくつかの実験の後、私はPHPコードにecho文を追加しました(私はPHPの理解が非常に限られています)、ノードサーバが動作している間にphpが処理されていないと判断しました。このような場合は、この問題を解決するために何ができますか? PHPのメーラーを動作させるために追加する必要のあるroute.jsまたはindex.js(NodeのExpress Serverフォルダの下)に何かがありますか?

+0

どのようにノードを実行していますか?そして、どこにur phpファイルがありますか?誰がPHPの要求を処理していますか? – Panther

+0

なぜノードから電子メールを送信できないのですか?なぜあなたはそれを行うにはPHPが必要ですか? – Panther

+0

1.文字列を '[email protected] ...'と 'message to.'でコメントアウトします。2.ヘッダー' Reply-To:$ email_address'は改行なしでなければなりません。 – Deadooshka

答えて

0

NodeJSと同じです。 ExpressJSでNodemailerを使用したくないのはなぜですか?使いやすくセットアップが簡単です。

+0

OK、私はNodemailerを理解しようとしています。 https://nodemailer.com/usage/ node_modulesディレクトリに '$ npm install nodemailer'を介してnodemailerをインストールしました。次に、SMTPなどを使用して「トランスポートオブジェクトを作成する」ように指示します。コード例が示されていますが、コードがどこにあるか(どのファイルで、どのフォルダにあるか)はわかりません。また、私のindex.htmlにそのフォームがどのように配線されているかは説明していません。トランスポートオブジェクトコードがどこに行くのか教えていただけますか?私はいくつかのチュートリアルを見ていますが、これらの重要な詳細はすべて省略しています。 – jcbridwe

+0

[私のレポへ](https://github.com/PinkyRabbit/usenodemailer)を見てください。私はうまくいっている仕事の例 –

+0

それは素晴らしい、ありがとう!したがって、本質的に、転送オブジェクトと設定は、Expressのroutesフォルダのindex.jsファイルにあります。それはまさに私が探していた答えです。私はそれを今接続することに取り組んでいます。 – jcbridwe

関連する問題