TypeError:nodemailer.createTransport不是函数

时间:2017-09-27 16:18:51

标签: node.js express node-modules nodemailer

我正在尝试在我的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一起使用吗?

3 个答案:

答案 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

安装nodemailer