Closed8

node.js 上の nodemailer で OAuth 2.0 を使って gmail からメールを送る

HishoHisho

プロジェクト作成編

.1 プロジェクトの選択を押す


2. 新しいプロジェクトを押す


3. プロジェクト名を入力し作成する

HishoHisho

認証情報編

1. 認証情報のページに移動する


2. 認証情報を作成を押す


3. OAuth クライアント IDを選択する


4. 同意画面を設定を押す


5. 外部を選択して作成を押す


6. アプリ情報の入力

  1. アプリ名を入力する
  2. ユーザーサポートメールを入力する
  3. デベロッパーの連絡先情報のメールアドレスを入力する
  4. 保存して次へを押す

7. スコープ

  1. 保存して次へを押す

8. テストユーザー

  1. 保存して次へを押す

9. 概要

  1. ダッシュボードに戻るを押す

10. アプリを公開する


HishoHisho

OAuth クライアント ID の作成編

1. 認証情報編の3 OAuth クライアント IDを選択するまでやる


2. OAuth クライアント ID の作成

  1. ウェブアプリケーションを選択する
  2. 承認済みのリダイレクト URLに(https://developers.google.com/oauthplayground)を入力する
  3. 作成を押す

3. クライアントIDとクライアントシークレットをメモする

HishoHisho

リフレッシュトークン取得編

https://developers.google.com/oauthplayground/
に移動する


1. 歯車を押してクライアントIDとクライアントシークレットを入力する


2. 「Step 1」の下部にある「Input your own scopes」に「https://mail.google.com/」を入力し「Authorize APIs」を押す


3. 自分のメアドを選択して許可する

※ 安全でない云々が出た場合は左下の詳細から続行できる


4.「Step 2」に進むので「Exchange authorization code for tokens」を押す

5. リフレッシュトークンをメモする

HishoHisho

メール送信確認編

1. 適当な場所にフォルダを作成しエディタで開く

2. ターミナルを開きnpmの初期設定をする

$ npm init -y

3. nodemailerをインストールする

$ npm i -D nodemailer

4. メール送信確認用のプログラムを書く

$ touch server.js
server.js
const nodemailer = require('nodemailer');

//認証情報
const auth = {
  type: "OAuth2",
  user: "ユーザ名@gmail.com",
  clientId: 'クライアントID',
  clientSecret: "クライアントシークレット",
  refreshToken: "リフレッシュトークン",
};

const transport = {
  service: "gmail",
  auth,
};

const transporter = nodemailer.createTransport(transport);

const mailOptions = {
  from: 'from mail address',
  to: auth.user,
  subject: "メール送信確認テスト",
  text: `メール送信確認テスト
  \nです。`,
};

transporter.sendMail(mailOptions, (err, response) => {
  console.log(err || response);
});

5. プログラムを実行する

$ node server.js

エラーが出ずメールが送信されていれば終わり

このスクラップは2021/05/15にクローズされました