Sunday, 2 April 2017

How to receive mail through Node using PHP script?

I am having an issue receiving mail through my Node Express app. I receive messages that say "Email Sent" then "Email Not Sent". I never had trouble using my PHP mailing script except for Node.

app.js

var express = require('express');
var fs = require('fs');
var bodyParser = require('body-parser');
var app = express();




app.use(express.static(process.cwd() + '/public'));
app.use(bodyParser.urlencoded({extended: true}));


app.get('/', function(req,res){
    res.send(fs.readFileSync('./views/index.html', 'utf8'));
});

app.get('/thank_you', function(req,res){
    res.send(fs.readFileSync('./views/thank_you.html'));
});

app.post('/contact.php', function(req,res) {
    res.send(fs.readFileSync('./public/contact.php'));
});



app.listen(process.env.PORT || 3000, function() {
    console.log("LISTENING!")

});

index.html (form)

<form action="contact.php" id="contact-form" method="post" enctype="multipart/form-data">
 <div class="row">
 <div class="form-group col-md-12">
 <input type="text" name="name" class="form-control" id="first-name" placeholder="Name" required="required">
 </div>
 <div class="form-group col-md-12">
 <input type="email" name="email" class="form-control" id="email" placeholder="Email" required="required">
 </div>
 <div class="form-group col-md-12">
 <textarea rows="6" name="message" class="form-control" id="description" placeholder="Your Message" required="required"></textarea>
 </div>
 <div class="col-md-12 text-center">
 <div class="actions wow fadeInDown" data-wow-delay=".4s">
 <input type="submit" value="submit now" name="submit" id="submitButton" class="btn btn-lg btn-contact-bg" title="Submit Your Message!">
  </div>
  </div>
  </div>
  </form>

contact.php

<?php 

$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];


$mail_to = 'mygmail@gmail.com';
$subject = 'Message from '. $name;


$body_message = 'From: ' . $name . "\n";
$body_message .= 'E-mail: ' . $email . "\n";
$body_message .= 'Message: ' . $message;

$headers = 'From: '. $email ."\r\n";
$headers .= 'Reply-To: '. $email ."\r\n";

$mail_status = mail($mail_to, $subject, $body_message, $headers);
header("Location: thank_you.html");



if ($mail_status) { ?>

    <script language="javascript" type="text/javascript">
        alert('Thank you for the message. We will contact you shortly.');
        history.back(1);

    </script>

    <?php 

}

else { ?>
    <script language="javascript" type="text/javascript">
        alert('Message failed. Please, send an email to michael@mjstokes.com');

        history.back(1);
    </script>
    <?php 

}

     ?>



via Michael Stokes

No comments:

Post a Comment