类型错误:nodemailer.createTransport不是一个函数。

问题描述 投票:1回答:3

我试图在我的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一起工作?

javascript node.js express node-modules nodemailer
3个回答
2
投票

使用thisvar nodemailer = require('nodemailer');


2
投票

看来你已经做到了

npm install node-mailer --save

这就是这个库。https:/www.npmjs.compackagenode-mailer

当你正试图按照说明来使用这个库的时候。https:/www.npmjs.compackagenodemailer

为了让你的代码能正常工作,你需要

npm install nodemailer --save

然后要求模块为

var nodemailer = require('nodemailer')

不要在node-mailer之间加连字符,这是一个不同的模块。


1
投票

nodemailernode-mailer 是两个不同的模块。你应该使用正确的模块。

var nodemailer = require('nodemailer');

另外,请确保nodemailer是用以下方式安装的 npm i

© www.soinside.com 2019 - 2024. All rights reserved.