我正在尝试在我的nodejs app中实现nodemailer来发送电子邮件。
这是我的代码
var express = require('express');
var nodemailer = require('node-mailer');
var app = express();
app.post('/contact/send', function(req, res) {
var transporter = nodemailer.createTransport({
service: 'Gmail',
auth: {
user: 'myEmailIdHere',
pass: 'myPassword'
}
});
var mailOptions = {
from: 'myName <myEmailIdHere>',
to: 'myOtherEmailIdHere',
subject: 'Website Submission',
text: 'You have a submission with the following details... Name: ' + req.body.name + ' Email: ' + req.body.email + ' Message: ' + req.body.message,
html: '<p>You have a submission with the following details...</p><ul><li>Name: ' + req.body.name + '</li><li>Email: ' + req.body.email + '</li><li>Message: ' + req.body.message + '</li></ul>'
};
transporter.sendMail(mailOptions, function(error, info) {
if (error) {
console.log(error);
res.redirect('/');
} else {
console.log('Message Sent: ' + info.response);
res.redirect('/');
}
})
提交表单后,我收到错误
&#34; TypeError:nodemailer.createTransport不是函数&#34;
有人可以帮我弄清楚如何让代码与nodemailer一起使用吗?
答案 0 :(得分:2)
好像你已经完成了
npm install node-mailer --save
这是这个库:https://www.npmjs.com/package/node-mailer
当您尝试按照此库的说明进行操作时:https://www.npmjs.com/package/nodemailer
让你的代码工作
npm install nodemailer --save
然后将模块命名为
var nodemailer = require('nodemailer')
不要在节点邮件之间放置连字符,它是一个不同的模块。
答案 1 :(得分:2)
使用它 var nodemailer = require(&#39; nodemailer&#39;);
答案 2 :(得分:1)
http://cordova.apache.org/docs/en/7.x/guide/cli/和node-mailer
是两个不同的模块。你应该使用正确的。
var nodemailer = require('nodemailer');
此外,请确保使用npm i