2017-06-20 2 views
1

Je reçois le message suivant lorsque vous essayez d'envoyer du courrier avec Nodemailer:Nodemail pour envoyer du courrier pour l'application firebase avec compte de service

'535-5.7.8 Username and Password not accepted. 
    Learn more at\n535 5.7.8 https://support.google.com/mail/?p=BadCredentials y42sm13399804wrc.51 - gsmtp', 
    responseCode: 535, 
    command: 'AUTH XOAUTH2' } 

J'utilise un compte de service d'un projet firebase, et ont accordé l'accès au GMail API. Mais le nodemailer docs for 2LO is really scarce alors je me demande si quelqu'un pourrait m'aider à trouver si j'utilise les informations d'identification correctes?

user (functions.config().gmail.user) : [email protected] 

-

function sendContactMail(contactName, contactEmail, contactDate, contactText) { 


    // Create transport 
    let transporter = nodemailer.createTransport({ 
    host: 'smtp.gmail.com', 
    port: 465, 
    secure: true, 
    auth: { 
     type: 'OAuth2', 
     user: functions.config().gmail.user, 
     serviceClient: functions.config().gmail.client_id, 
     privateKey: functions.config().gmail.private_key 
     //accessToken: 'ya29.Xx_XX0xxxxx-xX0X0XxXXxXxXXXxX0x', 
     //expires: 1484314697598 
    } 
    }); 

    // Mail Options 
    let mailOptions = { 
    from: `"${APP_NAME}" <${SENDER}>`, 
    replyTo: `${contactEmail}`, 
    to: '[email protected]', 
    subject: `Nouveau contact photo de ${contactName}`, 
    html: `Nom : ${contactName}<br/> 
      Email : ${contactEmail}<br/> 
      Date du mariage : ${contactDate}<br/> 
      Message : ${contactText}`, 
    disableFileAccess: true, 
    disableUrlAccess:true 
    }; 

    // Send Mail 
    return transporter.sendMail(mailOptions); 
} 

Répondre

0

J'ai fonction Cloud avec ce code et il est beau travail. Essayez ceci

mailTransport = nodemailer.createTransport({ 
    service: 'Gmail', 
    auth: { 
    user: ${email}, 
    pass: ${password} 
    } 
}); 
+0

Merci, mais je chose que cette méthode ne fonctionne que si activer « mode non sécurisé » sur gmail, que je ne veux pas faire . Je voudrais travailler avec le compte de service et l'identification OAuth2 à 2 pattes – Clouddie