2015-05-31 3 views
0

Используя настройку по умолчанию, установленную с Nodemailer, электронное письмо будет отправляться с нашим внутренним почтовым сервером в порядке, когда приложение запустится со всем кодом, включенным на странице app.js ,Nodemailer с Express App не отправит электронное письмо на кнопку «Щелчок»

//app.js 
var nodemailer = require('nodemailer'); 
var transporter = nodemailer.createTransport({ 
    host: 'mail.oursite.com', 
}); 
var mailOptions = { 
    from: '[email protected]', // sender address 
    to: '[email protected]', // list of receivers 
    subject: 'Hello ✔', // Subject line 
    text: 'Hello world ✔', // plaintext body 
    html: '<b>Hello world ✔</b>' // 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); 
}); 

Тогда при переключении предметов вокруг него ломается и ничего не происходит, когда вы пытаетесь сделать это нажатием кнопки.

App.js:

var nodemailer = require('nodemailer'); 
app.get('/users', routes.users); 

Users.js

var express = require('express'); 
var router = express.Router(); 
var nodemailer = require('nodemailer'); 

/* 
* POST to addcoupon Request. 
*/ 
router.post('/addcoupon', function(req, res) { 
    // create reusable transporter object using SMTP transport 
    var transporter = nodemailer.createTransport({ 
    host: 'mail.primeshine.com', 
    }); 
}); 
module.exports = router; 

index.js

var express = require('express'); 
var router = express.Router(); 
var nodemailer = require('nodemailer'); 

/* 
* POST to addcoupon Request. 
*/ 
router.post('/addcoupon', function(req, res) { 
    // create reusable transporter object using SMTP transport 
    var transporter = nodemailer.createTransport({ 
    host: 'mail.primeshine.com', 
    }); 
}); 
module.exports = router; 

Global.js

// Add Coupon Request 
function addCoupon(event) { 
    event.preventDefault(); 

    var mailOptions = { 
    from: '[email protected]', // sender address 
    to: '[email protected]', // list of receivers 
    subject: 'Hello ✔', // Subject line 
    text: 'Hello world ✔', // plaintext body 
    html: '<b>Hello world ✔</b>' // 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); 
    }); 
}; 

Я пытался использовать только соответствующий код, чтобы отправить его. Он отлично работает, отправляя информацию в MongoDB для кнопки, когда она добавляет информацию о пользователе, но ничего не передает, когда я пытаюсь отправить ее по электронной почте. Не уверен, что у меня что-то не в том месте или что-то еще не так ... Заранее спасибо за любую помощь!

+0

Вы используете Nodemailer на стороне клиента javascript (Global.js)? Это только для серверной стороны – laggingreflex

+0

Спасибо, новичок в этом, и это делает тонну смысла. Если бы реализовать его по-другому, так что спасибо – tharco

ответ

0

Когда я nodemailer отправлять сообщения электронной почты с моего почтового ящика я должен был создать транспорт с аутентификацией:

/* define transportation */ 
var transport = nodemailer.createTransport(smtpTransport({ 
    host: 'posteo.de', 
    port: 465, 
    secure: true, 
    auth: { 
     user: 'username', 
     pass: 'password' 
    }, 
    maxConnections: 5, 
    maxMessages: 10 
})); 

Не уверен, если это, если это необходимо для того, в вашем случае, но, возможно, это помогает.

+0

Нет, он отлично работает без аутентификации. Именно там я пытался запустить код, который был проблемой. Но спасибо за комментарий! – tharco