web-dev-qa-db-fra.com

L'erreur Nodemailer ne peut pas être corrigée

J'ai une application très simple, je commence juste à me salir les mains avec nodemailer. Lorsque j'exécute l'application, j'obtiens des erreurs dans le module lui-même.

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);
});

Et je reçois cette erreur:

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)

Je ne sais vraiment pas ce qui se passe ici.

20
A. Hickman

La version 6+ de Node.js est requise. Vérifiez votre version Node avec la commande suivante:

node --version

Si vous n'êtes pas au moins 6+, vous devez mettre à niveau.

Vous pouvez recevoir un autre message d'erreur vous demandant de vous connecter à votre compte. Dans ce cas, accédez à votre boîte de réception et vous verrez un message de Google avec un lien vers une page pour configurer des autorisations d'application moins sécurisées.

31
ThisClark

Ajoutez simplement ceci dans votre fichier package.json.

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

Cela téléchargera automatiquement la version du nœud que vous fournissez. De cette façon, vous n'avez pas besoin de mettre à jour votre NodeJS à chaque fois sur le serveur.

3
Abhinay Kumar

Nodemailer est compatible avec Node version 6 ou supérieure (selon - https://nodemailer.com/about/#requirements )

Suivez donc ces étapes pour mettre à niveau le nœud:

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 (le texte/la version en gras doit être celui installé lors de l'étape ci-dessus.)

c'est-à-dire que si 8.1.1 est installé, faites Sudo ln -sf /usr/local/n/versions/node/8.1.1/bin/node/usr/bin/node

node –v (Devrait afficher la version mise à jour maintenant)

Répondu ici aussi erreur Nodemailer si nécessaire

1
Sukhpreet Singh