Nodemailer l'utilisation de gmail, Ne peut pas créer de la propriété 'mailer' string 'SMTP'
Je suis en train d'envoyer les données du formulaire que j'ai créé à mon compte gmail, en cliquant sur le bouton soumettre, je reçois toujours le même message d'erreur.
J'ai trouvé beaucoup de questions à propos de nodemailer, mais aucun d'entre eux semblent être la même question que je suis en train de vivre.
Bien sûr, j'ai dit à mon clientId, mais simplement supprimé pour ce poste.
TypeError: Cannot create property 'mailer' on string 'SMTP'
at Mail (C:\Users\snowr\Documents\dev\zorgkaartnl\zorgkaartnl\node_modules\nodemailer\lib\mailer\index.js:45:33)
at Object.module.exports.createTransport (C:\Users\snowr\Documents\dev\zorgkaartnl\zorgkaartnl\node_modules\nodemailer\lib\nodemailer.js:46:14)
at C:\Users\snowr\Documents\dev\zorgkaartnl\zorgkaartnl\src\app.js:39:26
at Layer.handle [as handle_request] (C:\Users\snowr\Documents\dev\zorgkaartnl\zorgkaartnl\node_modules\express\lib\router\layer.js:95:5)
at next (C:\Users\snowr\Documents\dev\zorgkaartnl\zorgkaartnl\node_modules\express\lib\router\route.js:131:13)
at Route.dispatch (C:\Users\snowr\Documents\dev\zorgkaartnl\zorgkaartnl\node_modules\express\lib\router\route.js:112:3)
at Layer.handle [as handle_request] (C:\Users\snowr\Documents\dev\zorgkaartnl\zorgkaartnl\node_modules\express\lib\router\layer.js:95:5)
at C:\Users\snowr\Documents\dev\zorgkaartnl\zorgkaartnl\node_modules\express\lib\router\index.js:277:22
at Function.process_params (C:\Users\snowr\Documents\dev\zorgkaartnl\zorgkaartnl\node_modules\express\lib\router\index.js:330:12)
at next (C:\Users\snowr\Documents\dev\zorgkaartnl\zorgkaartnl\node_modules\express\lib\router\index.js:271:10)
at serveStatic (C:\Users\snowr\Documents\dev\zorgkaartnl\zorgkaartnl\node_modules\express\node_modules\serve-static\index.js:75:16)
at Layer.handle [as handle_request] (C:\Users\snowr\Documents\dev\zorgkaartnl\zorgkaartnl\node_modules\express\lib\router\layer.js:95:5)
at trim_prefix (C:\Users\snowr\Documents\dev\zorgkaartnl\zorgkaartnl\node_modules\express\lib\router\index.js:312:13)
at C:\Users\snowr\Documents\dev\zorgkaartnl\zorgkaartnl\node_modules\express\lib\router\index.js:280:7
at Function.process_params (C:\Users\snowr\Documents\dev\zorgkaartnl\zorgkaartnl\node_modules\express\lib\router\index.js:330:12)
at next (C:\Users\snowr\Documents\dev\zorgkaartnl\zorgkaartnl\node_modules\express\lib\router\index.js:271:10)
c'est mon app.js:
//require modules
const express = require('express');
const app = express();
const pug = require('pug');
const fs = require('fs')
const bodyParser = require('body-parser');
const pg = require('pg');
const nodemailer = require('nodemailer');
const xoauth2 = require('xoauth2');
//set view engine and views
app.set('views', 'src/views');
app.set('view engine', 'pug');
app.use(bodyParser.urlencoded({extended: false}));
app.use(express.static('./resources/'));
//display index page
app.get('/', function ( req, res ){
console.log('Index is displayed on localhost');
res.render('index');
});
app.post('/zorginstelling/ziekenhuis-olvg-locatie-west-voorheen-sint-lucas-andreas-ziekenhuis-amsterdam-109428/waardeer', function (req, res) {
var mailOpts, smtpTrans;
console.log('form word gepost')
//Setup Nodemailer transport, I chose gmail.
smtpTrans = nodemailer.createTransport('SMTP', {
service: 'Gmail',
auth: {
xoauth2: xoauth2.createXOAuth2Generator({
user: '[email protected]',
clientId: '-' ,
clientSecret: '-' ,
refreshToken: '-'
})
}
});
//Mail options
mailOpts = {
from: req.body.rating[name] + ' <' + req.body.rating[email][first] + '>',
to: '[email protected]',
subject: 'Test',
text: req.body.rating[comment] + req.body.rating[questions][behandeling] + req.body.rating[name]
};
smtpTrans.sendMail(mailOpts, function (error, response) {
//Email not sent
if (error) {
console.log('There was a problem')
}
//Yay!! Email sent
else {
console.log('Email sent!')
}
});
});
var server = app.listen(4000, function () {
console.log('Example app listening on port: ' + server.address().port);
});
OriginalL'auteur Kyle van Til | 2017-02-23
Vous devez vous connecter pour publier un commentaire.
La nodemailer a été retravaillée, afin de l'ancien code de la structure pourrait jeter une telle erreur.
Essayez d'utiliser la structure suivante:
S'il vous plaît, vérifiez officielle pour plus de détails:
https://community.nodemailer.com/2-0-0-beta/using-oauth2/
C'est parce que vous avez besoin pour réduire gmail paramètres de sécurité, et permettre "l'accès pour les moins sécurisé des applications" dans les paramètres du client. Ensuite, votre application va accéder à votre boîte aux lettres via le smt protocole. Peut-être il ya une autre façons de résoudre ce auth questions, mais je n'ai pas trouver encore.
Je sais je l'ai déjà fait, mais il me semblait que mon code est le problème que j'ai pensé de façon complexe, je suppose.
j'obtiens le même message d'erreur, pouvez-vous svp m'aider à résoudre @KylevanTil
Pouvez-vous s'il vous plaît ajouter le code complet extrait? Aussi, où obtenez-vous les "autres choses"? Je vous remercie.
OriginalL'auteur Alexander Rulezovsky
Le problème actuel aujourd'Hui pour obtenir de l'aide est le changement de l'information plus rapidement, et Alexandre a été bon quand il a dit "nodemailer est revisité";
- je utiliser ce facile de définir le transporteur:
je l'ai eu à partir d'ici https://community.nodemailer.com/
OriginalL'auteur Richard Aguirre
J'ai eu le même problème. 'nodemailer-smtp-transport' module résolu
installer nodemailer-smtp-transport par "npm install nodemailer-smtp-des transports"
OriginalL'auteur Saif
C'est de travailler pour moi-
Notez que vous devrez tourner sur le moins sûr des applications à partir de google. Visite https://myaccount.google.com/lesssecureapps . Une fois activé, l'actualisation de la page juste pour s'assurer qu'elle a effectivement mis en marche (je l'ai allumé en 4 tentatives).
OriginalL'auteur Varun Kumar
Essayer ci-dessous:
Voir: https://nodemailer.com/smtp/oauth2/
OriginalL'auteur gavriln
Cela a fonctionné pour moi s'il vous plaît essayer
OriginalL'auteur nayebare