我试图在我的nodejs应用程序中实现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('/');
}
})
提交表格后,我得到的错误是
"类型错误:nodemailer.createTransport不是一个函数"
谁能帮助我弄清楚如何使代码与nodemailer一起工作?
使用thisvar nodemailer = require('nodemailer');
看来你已经做到了
npm install node-mailer --save
这就是这个库。https:/www.npmjs.compackagenode-mailer
当你正试图按照说明来使用这个库的时候。https:/www.npmjs.compackagenodemailer
为了让你的代码能正常工作,你需要
npm install nodemailer --save
然后要求模块为
var nodemailer = require('nodemailer')
不要在node-mailer之间加连字符,这是一个不同的模块。
nodemailer
和 node-mailer
是两个不同的模块。你应该使用正确的模块。
var nodemailer = require('nodemailer');
另外,请确保nodemailer是用以下方式安装的 npm i