我正在使用Nodemailer。我有几个正确运行在localhost中的表单,一切正常。但是当我将它们上传到我的主机(IP DigitalOcean)时,它们不会发送。
我做错了什么?或者上传到我的托管时我应该考虑什么。
我收到以下错误:
POST http://165.227.18.50/send 404 (Not Found)
xhr.send( options.hasContent && options.data || null );
我的IP正在运行:http://165.227.18.50/#!/inicio
server.js
/*
Configuración envío de e-mail
*/
var http=require('http');
var express=require('express');
var nodemailer = require("nodemailer");
var bodyParser = require('body-parser')
var app=express();
var port = Number(process.env.PORT || 5000);
app.use(bodyParser.json()); // to support JSON-encoded bodies
app.use(bodyParser.urlencoded({ extended: true }));
app.use('/', express.static(__dirname + '/'));
var path = require('path');
// Home page
app.get('/*',function(req, res, next){
res.sendFile('index.html', { root: __dirname });
//console.log
console.log('NodeMailer reading console log...' + req.url);
});
// sending mail function
app.post('/send', function(req, res){
if(req.body.email == "" || req.body.seguro == "") {
res.send("Error: Email & Seguro should not blank");
return false;
}
// Sending Emails with SMTP, Configuring SMTP settings
var smtpTransport = nodemailer.createTransport({
host: "smtp.gmail.com", // hostname
secureConnection: true, // use SSL
port: 465, // port for secure SMTP
secure: true,
auth: {
user: '********@gmail.com',
pass: '********'
}
});
var mailOptions = {
from: 'My App <********@gmail.com>', // sender address
to: '****@*****.com', //+ req.body.email, // list of receivers
subject: 'Nuevo cliente potencial', // Subject line
//text: "Hello world ✔", // plaintext body
html:
'Hola un cliente potencial se ha registrado: <br><br>' +
'Producto de interés: ' + req.body.seguro + '<br>' +
'Correo electrónico: ' + req.body.email
}
smtpTransport.sendMail(mailOptions, mailOptionsContact, function(error, response){
if(error){
res.send("No se pudo enviar el correo debido a un error.: "+error);
}else{
res.send("Requerimiento enviado con éxito.");
}
});
});
// Starting server
var server = http.createServer(app).listen(port, function() {
console.log("Server is Running on 127.0.0.1:" + port);
});
&#13;
form.html
<h3 class="text-center">¡Consigue tu seguro ahora!</h3>
<br>
<div id="msg"></div>
<div ng-controller="repeatSeguros">
<form ng-controller="addClientesPotenciales" id="emailForm" method="post" role="form">
<div class="form-group">
<select class="form-control form-control-lg" name="seguro" ng-model="client.seguro">
<option value="" disabled selected hidden>Elije un producto</option>
<option disabled>Seguro Personas</option>
<option ng-repeat="seguro in segurosPersonas">{{seguro.tipo}}</option>
<option disabled>Seguro Empresas</option>
<option ng-repeat="seguro in segurosEmpresas">{{seguro.tipo}}</option>
</select>
</div>
<div class="form-group">
<input type="email" class="form-control form-control-lg" name="email" placeholder="E-mail" required="required" ng-model="client.email">
</div>
<p class="">
<input type="checkbox" checked class="mr-2"> He leído y aceptado los <a ui-sref="main.politicaPrivacidad" href="">términos y condiciones</a> sobre el tratamiento de datos.
</p>
<button type="submit" class="btn btn-primary btn-block btn-lg" id="send" ng-click="addClient()">Quiero información</button>
</form>
</div>
<script>
$(function(){
var fullUrl = location.protocol+'//'+location.hostname+(location.port ? ':'+location.port: '');
$("#send").click(function(){
var formData = $("#emailForm").serialize();
$("#msg").html("Enviando requerimiento...");
$.ajax({
url: fullUrl+'/send',
type: 'POST',
data: formData,
success: function(result) {
$("#msg").empty().html(result);
},
error: function(e) {
$("#msg").empty().html("There is some error to send email, Error code:"+e.status +", Error message:"+e.statusText);
},
dataType: "html",
timeout: 60000
});
});
});
</script>
&#13;