Click here to Skip to main content
15,886,137 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
Hi,

I am using express framework form to get inputs from user and sending it as email by using node mailer. However i am unable to receive the image and system type (Combo box).I am new to node.kindly help.

What I have tried:

### My HTML code
```

ONLINE SUPPORT REQUEST




<form role="form" name="myForm" >

<label for="name">What is your name?</label>
<input type="text" class="form-control" id="text" name="fname" placeholder="name">


<label for="cname">What is your company name?</label>
<input type="text" class="form-control" id="text" name="cname" placeholder="company name">


<label for="email">What is your email address?</label>
<input type="email" class="form-control" id="email" name="email" placeholder="Enter email">


<label for="phone">What is your phone number?</label>
<input type="text" class="form-control" id="text" name="phone" placeholder=" phone number with area code">



<label for="one">Is this an emergency? </label>
<input type="radio" class="form-control" id="text" name="emergency" value="No"> NO <input type="radio" class="form-control" id="text" name="emergency" value="Yes"> YES



<label for="one">Do you require a phone call when we begin working on your ticket? </label>
<input type="radio" class="form-control" id="text" name="phonecall" value="No"> NO <input type="radio" class="form-control" id="text" name="phonecall" value="Yes"> YES



<label for="combo" name="systemtype"> What is your system platform</label>

<select>
<option value="volvo">Microsoft Windows</option>
<option value="saab">Mac OS X</option>
<option value="opel">Linux</option>
<option value="audi">IOS</option>
<option value="5">Android</option>
<option value="6">Others</option>
</select>




<label for="uploadfile"> Please attach a screenshot if applicable.</label>
<input type="file" class="form-control" id="text" name="attachment" size="50">


<input type="submit" value="Upload File" />




<label for="name">What is the subject of your support request?</label>
<input type="text" class="form-control" id="text" name="supportrequest" placeholder="suport subject">


<label for="comment">Please describe the support issue in detail </label>
<textarea class="form-control" rows="5" id="comment" name="urcomments"></textarea>


<button type="submit" class="btn btn-default">Submit</button>
</form>



```

### My server Code
```js
var express = require('express');
var app = express();
var fs = require("fs");
var bodyParser = require('body-parser');
var multer = require('multer');



// Create application/x-www-form-urlencoded parser
var urlencodedParser = bodyParser.urlencoded({ extended: false })

app.use(express.static('public'));
var upload = multer({ dest: './uploads' });

app.get('/client-support.htm', function (req, res) {
res.sendFile( __dirname + "/" + "client-support.htm" );
})

app.post('/process_post', urlencodedParser, function (req, res) {

// Prepare output in JSON format
response = {
fname:req.body.fname,
cname:req.body.cname,
email:req.body.email,
phone:req.body.phone,
emergency:req.body.emergency,
phonecall:req.body.phonecall,
systemtype:req.body.systemtype,
attachment:req.body.attachment,
supportrequest:req.body.supportrequest,
urcomments:req.body.urcomments

};

console.log(response);
res.end(JSON.stringify(response));



console.log(req.files.file.name);
console.log(req.files.file.path);
console.log(req.files.file.type);

var file = __dirname + "/" + req.files.file.name;
fs.readFile( req.files.file.path, function (err, data) {
fs.writeFile(file, data, function (err) {
if( err ){
console.log( err );
}else{
response = {
message:'File uploaded successfully',
filename:req.files.file.name
};
}
console.log( response );
res.end( JSON.stringify( response ) );
});
});

//sudan file upload edit end

//sudan edited node mailer code below


var nodemailer = require('nodemailer');

// create reusable transporter object using the default SMTP transport
var transporter = nodemailer.createTransport('smtps://xxxxxxx%40xxxx.com:xxxxxx@smtp.gmail.com');


// setup e-mail data with unicode symbols
var mailOptions = {
from: 'xxxxxxxx.com', // sender address
to: 'xxxxxxxxx.com', // list of receivers
subject: 'Client Support Page - Client Details', // Subject line
text: 'you have a new submission with folowwing details....Name:'+req.body.fname+'cname:'+req.body.cname+'Email:'+req.body.email+'Phone:'+req.body.phone+'emergency:'+req.body.emergency+'phonecall:'+req.body.phonecall+'systemtype:'+req.body.systemtype+'attachment:'+req.body.attachment+'supportrequest:'+req.body.supportrequest+'urcomments:'+req.body.urcomments, // plaintext body
html: '
DETAILS LISTCLIENT DETAILS
Name:'+req.body.fname+'
Email:'+req.body.email+'
Phone:'+req.body.phone+'
emergency:'+req.body.emergency+'
phonecall:'+ req.body.phonecall +'
systemtype:'+req.body.systemtype +'
attachment:'+req.body.attachment +'
supportrequest:'+ req.body.supportrequest +'
'// html body
};

// send mail with defined transport object
transporter.sendMail(mailOptions, function(error, info){
if(error){
return console.log(error);
}
console.log('Message sent: ' + info.response);
});




})

var server = app.listen(8081, function () {

var host = server.address().address
var port = server.address().port

console.log("Example app listening at http://%s:%s", host, port)

})
Posted

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900