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.
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.
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.
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