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 LIST | CLIENT 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)
})