title: Error: Invalid login: Application-specific password required
body: <p>i want send Welcome notification when user sign in using Cloud-Function with firebase auth
  so i m using nodejs CLI and run the code </p>
  
  <p>my index.js file
      'use strict';</p>
  
  <pre><code>    const functions = require('firebase-functions');
      const nodemailer = require('nodemailer');
      // Configure the email transport using the default SMTP transport and a GMail account.
      // For Gmail, enable these:
      // 1. https://www.google.com/settings/security/lesssecureapps
      // 2. https://accounts.google.com/DisplayUnlockCaptcha
      // For other types of transports such as Sendgrid see https://nodemailer.com/transports/
      // TODO: Configure the `gmail.email` and `gmail.password` Google Cloud environment variables.
  
      const gmailEmail = functions.config().gmail.email;
      const gmailPassword = functions.config().gmail.password;
      const mailTransport = nodemailer.createTransport({
        service: 'gmail',
        auth: {
          user: gmailEmail,
          pass: gmailPassword,
        },
      });
  
      // Your company name to include in the emails
      // TODO: Change this to your app or company name to customize the email sent.
      const APP_NAME = 'Cloud Storage for Firebase quickstart';
  
      // [START sendWelcomeEmail]
      /**
       * Sends a welcome email to new user.
       */
      // [START onCreateTrigger]
      exports.sendWelcomeEmail = functions.auth.user().onCreate((user) =&gt; {
      // [END onCreateTrigger]
        // [START eventAttributes]
        const email = user.email; // The email of the user.
        const displayName = user.displayName; // The display name of the user.
        // [END eventAttributes]
  
        return sendWelcomeEmail(email, displayName);
      });
      // [END sendWelcomeEmail]
  
      // [START sendByeEmail]
      /**
       * Send an account deleted email confirmation to users who delete their accounts.
       */
      // [START onDeleteTrigger]
      exports.sendByeEmail = functions.auth.user().onDelete((user) =&gt; {
      // [END onDeleteTrigger]
        const email = user.email;
        const displayName = user.displayName;
  
        return sendGoodbyeEmail(email, displayName);
      });
      // [END sendByeEmail]
  
      // Sends a welcome email to the given user.
      async function sendWelcomeEmail(email, displayName) {
        const mailOptions = {
          from: `${APP_NAME} &lt;noreply@firebase.com&gt;`,
          to: email,
        };
  
        // The user subscribed to the newsletter.
        mailOptions.subject = `Welcome to ${APP_NAME}!`;
        mailOptions.text = `Hey ${displayName || ''}! Welcome to ${APP_NAME}. I hope you will enjoy our service.`;
        await mailTransport.sendMail(mailOptions);
        console.log('New welcome email sent to:', email);
        return null;
      }
  
      // Sends a goodbye email to the given user.
      async function sendGoodbyeEmail(email, displayName) {
        const mailOptions = {
          from: `${APP_NAME} &lt;noreply@firebase.com&gt;`,
          to: email,
        };
  
        // The user unsubscribed to the newsletter.
        mailOptions.subject = `Bye!`;
        mailOptions.text = `Hey ${displayName || ''}!, We confirm that we have deleted your ${APP_NAME} account.`;
        await mailTransport.sendMail(mailOptions);
        console.log('Account deletion confirmation email sent to:', email);
        return null;
      }
  </code></pre>
  
  <p>i refer this code <a href="https://github.com/firebase/functions-samples/blob/master/quickstarts/email-users/functions/index.js" rel="noreferrer"><code>https://github.com/firebase/functions-samples/blob/master/quickstarts/email-users/functions/index.js</code></a></p>
  
  <p>but after i ran the code i got error</p>
  
  <pre><code>    Error: Invalid login: 534-5.7.9 Application-specific password required. Learn more at
  534 5.7.9  https://support.google.com/mail/?p=InvalidSecondFactor i82sm13686303ilf.32 - gsmtp
      at SMTPConnection._formatError (/srv/node_modules/nodemailer/lib/smtp-connection/index.js:784:19)
      at SMTPConnection._actionAUTHComplete (/srv/node_modules/nodemailer/lib/smtp-connection/index.js:1523:34)
      at SMTPConnection._responseActions.push.str (/srv/node_modules/nodemailer/lib/smtp-connection/index.js:550:26)
      at SMTPConnection._processResponse (/srv/node_modules/nodemailer/lib/smtp-connection/index.js:942:20)
      at SMTPConnection._onData (/srv/node_modules/nodemailer/lib/smtp-connection/index.js:749:14)
      at TLSSocket.SMTPConnection._onSocketData.chunk (/srv/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
      at emitOne (events.js:116:13)
      at TLSSocket.emit (events.js:211:7)
      at addChunk (_stream_readable.js:263:12)
      at readableAddChunk (_stream_readable.js:250:11)
  </code></pre>
  
  <p>i also Allow less secure apps From your Google Account
  and also done 2 step-verification <a href="https://i.stack.imgur.com/y8wwU.png" rel="noreferrer"><img src="https://i.stack.imgur.com/y8wwU.png" alt="Here"></a>
  but still got an error</p>
  
  <p>I read all "Similar Questions" here in stackoverflow and I don't know if I need anything else or if I'm doing anything bad</p>