web-dev-qa-db-ja.com

Nodemailerエラーは修正できません

Nodemailerで手を汚し始めたばかりの非常に単純なアプリケーションがあります。アプリを実行すると、モジュール自体にエラーが発生します。

app.js:

const nodemailer = require('nodemailer');

const transporter = nodemailer.createTransport('smtps://me%40gmail.com:[email protected]');


var mailOptions = {
    from:    '"Me" <[email protected]>', // sender address
    to:      '[email protected], [email protected]', // 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)

ここで何が起こっているのか本当に分かりません。

20
A. Hickman

Node.jsバージョン6以降が必要です。次のコマンドを使用してNodeバージョンを確認します。

node --version

6歳以上でない場合は、アップグレードする必要があります。

アカウントにログインするよう指示する別のエラーメッセージが表示される場合があります。その場合は、メールの受信トレイに移動すると、安全性の低いアプリのアクセス許可を設定するためのページへのリンクが記載されたGoogleからのメッセージが表示されます。

31
ThisClark

これをpackage.jsonファイルに追加するだけです。

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

これにより、指定したノードバージョンが自動的にダウンロードされます。この方法では、サーバーで毎回NodeJSをアップグレードする必要はありません。

3
Abhinay Kumar

Nodemailerは、Nodeversion 6以降と互換性があります(as https://nodemailer.com/about/#requirements

したがって、次の手順に従ってノードをアップグレードします。

1 * sudo npm cache clean -f

2 * sudo npm install -g n

3 * Sudo n安定

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エラー

1
Sukhpreet Singh