L'envoi de mails via Node.js à l'aide de nodemailer ne fonctionne pas
J'ai mis en place une base de NodeJS serveur (à l'aide de la nodemailer module) localement (http://localhost:8080
) juste pour que je puisse tester si le serveur peut envoyer des e-mails.
Si je comprends le SMTP option correctement (s'il vous plaît corrigez-moi si je me trompe), je peux essayer d'envoyer un e-mail à partir de mon serveur à un compte de messagerie directement, ou je peux envoyer l'e-mail, toujours à l'aide de Node.js mais par le biais d'un e-mail compte de (dans ce cas mon compte Gmail), j'.e en utilisant le protocole SMTP. Cette option m'oblige à entrer dans le qui compte à distance via NodeJS.
Donc dans le serveur ci-dessous, je suis en train d'essayer d'utiliser NodeJs pour envoyer un e-mail à partir de mon compte de messagerie personnelle à mon compte de messagerie personnel.
Voici mon serveur simple :
var nodemailer = require('nodemailer');
var transporter = nodemailer.createTransport("SMTP", {
service: 'Gmail',
auth: {
user: '*my personal Gmail address*',
pass: '*my personal Gmail password*'
}
});
var http = require('http');
var httpServer = http.createServer(function (request, response)
{
transporter.sendMail({
from: '*my personal Gmail address*',
to: '*my personal Gmail address*',
subject: 'hello world!',
text: 'hello world!'
});
}).listen(8080);
Toutefois, cela ne fonctionne pas. J'ai reçu un mail de Google en disant :
Compte Google: tentative de connexion bloqué
Si c'était vous
Vous pouvez basculer d'une application faite par Google tels que Gmail pour accéder à votre compte (recommandé), ou de modification
vos paramètres à https://www.google.com/settings/security/lesssecureapps de sorte que votre compte n'
est plus protégé par les normes de sécurité.
Je ne pouvais pas trouver une solution pour le problème ci-dessus sur la nodemailer page GitHub. Quelqu'un aurait-il une solution ou une suggestion ?
Merci! 🙂
OriginalL'auteur Sprout Coder | 2014-10-04
Vous devez vous connecter pour publier un commentaire.
La réponse est dans le message de google.
Aller à : https://www.google.com/settings/security/lesssecureapps
définir la Accès pour moins d'applications sécurisées paramètre Permettre
Pour la deuxième partie du problème, et en réponse à
Je vous renvoie à la nodemailer github page, et ce morceau de code :
Il diffère légèrement de votre code, dans le fait que vous avez :
nodemailer.createTransport("SMTP"
.Supprimer les paramètres SMTP et il fonctionne (juste testé). Aussi, pourquoi encapsulation dans un serveur http? les ouvrages suivants :
Ayant permis que maintenant, je sais plus se que la notification de Google, mais je n'ai pas reçu l'e-mail soit si ça ne marche toujours pas j'ai peur..
essayez d'utiliser un autre " à " et "de", j'ai eu un problème similaire dans le passé avec gmail et tout autre destinataire que moi.
cela va à l'encontre de l'objet de l'envoi d'e-mails à partir de mon site à mon compte Gmail. La création d'un nouveau compte Gmail afin que je puisse utiliser que l'un comme l'
from:
dans nodemailer ne fait pas beaucoup de sens, il doit y avoir un autre sens que, à moins d'un gros "hack"Je l'ai proposé plus de débogage de la procédure, pour voir si le problème vient de ton code ou à partir de gmail.
OriginalL'auteur xShirase
Pour ceux qui veulent réellement utiliser OAuth2 /ne veux pas faire de l'app "moins sûrs", vous pouvez y parvenir en
SCOPES
var de['https://www.googleapis.com/auth/gmail.readonly']
à['https://mail.google.com/']
dans le démarrage rapide js fichier fourni comme suggéré dans le dépannage à https://nodemailer.com/smtp/oauth2/acessToken
,refreshToken
, etexpires
les attributs nécessaires à la OAuth2 Exemples pour NodemailerDe cette façon, vous pouvez utiliser l'authentification OAuth2 comme suit
au lieu de stocker votre mot de passe gmail en clair et déclassement de la sécurité sur votre compte.
Pour le faire fonctionner, j'ai utilisé une combinaison de cette réponse de transport définition (sans spécifier accessToken et expire) et ce post qui utilise google oauth aire de jeux pour obtenir le jeton d'actualisation: medium.com/@pandeysoni/...
je n'ai pas d'ÉTENDUES variables dans mon gmail-nodejs-guide de démarrage rapide.json
OriginalL'auteur ironicaldiction
je viens de mettre mon domaine: smtp.gmail.com et il fonctionne. Je suis à l'aide d'un VPS Vultr.
le code:
mon ejs modèle d'e-mail.ejs):
Assurez-vous que:
bonne journée 😉
OriginalL'auteur Mathias Gheno Azzolini
Vous avez seulement besoin de mot de passe d'Application pour les google auth, puis remplacer votre mot de passe google dans votre code.
rendez-vous ici https://myaccount.google.com/apppasswords
exemple de code:
Salut, il travaillera dans azure dans le cloud. Pour moi aussi, c'est de travailler en local, mais pas dans les nuages. Elle serait très utile pour moi si vous pouviez mettre à jour sur ce..
c'est en quelque sorte travaillé, mais je ne me souviens pas comment. désolé
merci fr votre réponse.. si vous vous souvenez, après un certain temps, s'il vous plaît ne répondez ici.
sûr, va à jour
OriginalL'auteur kdgilang
Fin de débogage, il est pratique de mettre en œuvre une fonction de rappel (ils ne le font jamais sur le nodemailer github page), qui affiche le message d'erreur (si il y en a un).
Il m'a aidé à résoudre mon problème... s'avère versions plus récentes ne fonctionnent pas correctement:
"Ressemble nodemailer 1.0 a casser les changements afin de 0,7 doit être utilisée à la place: http://www.nodemailer.com/
Message posté sur nodemailer de 12/17/15:
Ne pas mettre à niveau Nodemailer de 0,7 ou inférieur à 1,0, comme il y a des modifications importantes. Vous pouvez continuer à utiliser la branche de 0,7 aussi longtemps que vous le souhaitez. Consultez la documentation de 0,7 ici."
J'ai trouvé cette réponse ici
OriginalL'auteur Maarten Meeusen
Alors que les réponses ci-dessus pour faire le travail, je tiens à souligner que vous pouvez diminuer la sécurité de Gmail par la suite DEUX étapes.
ÉTAPE #1
ÉTAPE #2
OriginalL'auteur Ahmad Awais
essayer ce code son travail pour moi.
réponse:
OriginalL'auteur KARTHIKEYAN.A
Et installer le module smtp en tant que dépendances:
npm install smtp
Aller à https://myaccount.google.com/lesssecureapps
et de le modifier SUR parce que
Certaines applications et l'utilisation de dispositifs de moins en sécurité de connexion de la technologie, ce qui rend votre compte plus vulnérables. Vous pouvez désactiver l'accès de ces applications, nous vous recommandons, ou tourner sur accès si vous voulez les utiliser, malgré les risques.
OriginalL'auteur Azran Khan