Nodemailer错误无法修复

时间:2017-02-04 21:10:14

标签: javascript node.js npm syntax-error nodemailer

我有一个非常简单的应用程序,只是开始弄脏nodemailer。当我运行应用程序时,我在模块中遇到错误。

app.js:

const nodemailer = require('nodemailer');

const transporter = nodemailer.createTransport('smtps://me%40gmail.com:supersecretpw@smtp.gmail.com');


var mailOptions = {
    from:    '"Me" <me@gmail.com>', // sender address
    to:      'him@him.com, her@her.com', // list of receivers
    subject: 'Hello dude', // Subject line
    text:    'Test email with text', // plaintext body
    html:    "Testing 1..2..7" // 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);
});

我收到了这个错误:

C:\Users\Andrew\desktop\messy4\node_modules\nodemailer\lib\mailer\index.js:31
            compile: [(...args) => this._convertDataImages(...args)],
                       ^^^

SyntaxError: Unexpected token ...
    at exports.runInThisContext (vm.js:53:16)
    at Module._compile (module.js:387:25)
    at Object.Module._extensions..js (module.js:422:10)
    at Module.load (module.js:357:32)
    at Function.Module._load (module.js:314:12)
    at Module.require (module.js:367:17)
    at require (internal/module.js:16:19)
    at Object.<anonymous> (C:\Users\Andrew\desktop\messy4\node_modules\nodemailer\lib\nodemailer.js:3:16)
    at Module._compile (module.js:413:34)
    at Object.Module._extensions..js (module.js:422:10)

真的不确定这里发生了什么。

3 个答案:

答案 0 :(得分:31)

需要Node.js版本6+。使用以下命令检查节点版本:

node --version

如果你不是至少6岁以上,那么你必须升级。

您可能会收到另一条错误消息,指示您登录自己的帐户。在这种情况下,请转到您的电子邮件收件箱,您会看到来自Google的消息,其中包含指向设置不太安全的应用权限的页面的链接。

答案 1 :(得分:3)

只需在package.json文件中添加。

"engines": {
    "node": "6.9.4"    // You can use any version
  }

这将自动下载您提供的节点版本。通过这种方式,您无需每次都在服务器中升级NodeJS。

答案 2 :(得分:1)

Nodemailer与Node 版本6或更高版本 兼容(根据https://nodemailer.com/about/#requirements

请按照以下步骤升级节点:

1 * sudo npm cache clean -f

2 * sudo npm install -g n

3 * sudo n stable

4 * sudo ln -sf /usr/local/n/versions/node/5.4.1/bin/node / usr / bin / node (粗体文字/版本应该是上述步骤中安装的那个。)

即如果安装了8.1.1,那么请执行sudo ln -sf /usr/local/n/versions/node/8.1.1/bin/node / usr / bin / node

node -v(现在应该显示更新版本)

此处也回答Nodemailer error when required