質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
Gmail

GmailとはGoogleによって提供されているウェブメールのサービスのことです。

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

解決済

Node.jsでのGmail送信がエラーになる

tetakaha759
tetakaha759

総合スコア16

Gmail

GmailとはGoogleによって提供されているウェブメールのサービスのことです。

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

1回答

0評価

0クリップ

711閲覧

投稿2022/06/13 01:32

前提

タイトルの通りですが、今までは問題がなかった「Node.jsでのGmail送信」が、エラーによって送信できなくなりました。

メール送信に使っているアカウントには、「5 月 30 日より、安全性の低いログイン技術を使用するアプリにアクセスできなくなる可能性があります」というメールがGoogle側より送られて来ておりましたが、このアカウントが送信専用だったため見落としていました。

実現したいこと

今まで通り、Node.jsからGmail送信が行えるように、設定の変更やソースコードの修正を行いたいと思っています。

上記の「Google側からのメール」には、以下のメッセージが記載されていました:

★★★
簡易メール転送プロトコル(SMTP)を使用するアプリやデバイスは、Google アカウントを通じてメールを送信する際に、安全性の低い方法で Gmail にアクセスしています。プリンタやスキャナなど、古いデバイスはこれに該当する可能性があります。このようなアプリやデバイスで引き続き Google アカウントを使用するには、次の操作を行う必要があります。

アプリの場合: アプリから Google アカウントを削除し、Google でログインを使用してログインし直します。
デバイスの場合: より安全なログイン技術が使用されるようにデバイスの設定を変更します。
★★★

発生している問題・エラーメッセージ

今まで動作していた「テスト送信用のコード」を実行すると、このようなエラーが発生するようになりました。

Error: Invalid login: 535-5.7.8 Username and Password not accepted. Learn more at 535 5.7.8 https://support.google.com/mail/?p=BadCredentials p5-20020a170902bd0500b00163ef7be14csm3646975pls.89 - gsmtp at SMTPConnection._formatError (/XXXXXXXX/node_modules/nodemailer/lib/smtp-connection/index.js:784:19) at SMTPConnection._actionAUTHComplete (/XXXXXXXX/node_modules/nodemailer/lib/smtp-connection/index.js:1536:34) at SMTPConnection.<anonymous> (/XXXXXXXX/node_modules/nodemailer/lib/smtp-connection/index.js:540:26) at SMTPConnection._processResponse (/XXXXXXXX/node_modules/nodemailer/lib/smtp-connection/index.js:947:20) at SMTPConnection._onData (/XXXXXXXX/node_modules/nodemailer/lib/smtp-connection/index.js:749:14) at TLSSocket.SMTPConnection._onSocketData (/XXXXXXXX/node_modules/nodemailer/lib/smtp-connection/index.js:189:44) at TLSSocket.emit (events.js:315:20) at addChunk (internal/streams/readable.js:309:12) at readableAddChunk (internal/streams/readable.js:284:9) at TLSSocket.Readable.push (internal/streams/readable.js:223:10) { code: 'EAUTH', response: '535-5.7.8 Username and Password not accepted. Learn more at\n' + '535 5.7.8 https://support.google.com/mail/?p=BadCredentials p5-20020a170902bd0500b00163ef7be14csm3646975pls.89 - gsmtp', responseCode: 535, command: 'AUTH PLAIN'

該当のソースコード

Node.js

const nodemailer = require ('nodemailer'); (async () => { //「from」および「to」はマスキング const message = { from: 'hogehoge', to: 'darekasan@example.com', subject: 'TEST', text: 'TEST TEST' }; const smtpConfig = { host: 'smtp.gmail.com', port: 465, secure: true, //「user」および「pass」はマスキング auth: { user: 'hogehoge@gmail.com', pass: 'himitsu' } }; const mailer = nodemailer.createTransport (smtpConfig); console.dir (await mailer.sendMail (message)); }) ();

試したこと

まずはGoogle側からのメールで「★★★」のメッセージを参考に、「Googleアカウント」の「安全性の低いアプリのアクセス」ページに行きましたが、「この設定は使用できません」となって変更ができません。

その画面にあった「詳細」をクリックすると、「アカウントを安全に保つため、2022 年 5 月 30 日より、Google は、ユーザー名とパスワードのみで Google アカウントにログインするサードパーティ製のアプリとデバイスについてサポートを終了いたします。」というメッセージが表示されます。

その他で、メール送信できるようになる方法を見出そうとしましたが、「安全性の高いアプリに切り替えることをおすすめします。」というメッセージと、「サード-パーティ製のアプリについての記事」という項目程度しかなく、具体的なコードの修正方法などは確認できませんでした。

設定の変更やソースコードの修正で、再びメール送信が行える方法をご存じな方がいらっしゃるのであれば、何とぞその方法をご教示いただけませんでしょうか。

補足情報(FW/ツールのバージョンなど)

Node.js v14.15.5

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Gmail

GmailとはGoogleによって提供されているウェブメールのサービスのことです。

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。