Closed8
node.js 上の nodemailer で OAuth 2.0 を使って gmail からメールを送る
これを実際にやってみたまとめ
GCPにアクセスする
プロジェクト作成編
.1 プロジェクトの選択を押す
2. 新しいプロジェクトを押す
3. プロジェクト名を入力し作成する
認証情報編
1. 認証情報のページに移動する
2. 認証情報を作成を押す
3. OAuth クライアント IDを選択する
4. 同意画面を設定を押す
5. 外部を選択して作成を押す
6. アプリ情報の入力
- アプリ名を入力する
- ユーザーサポートメールを入力する
- デベロッパーの連絡先情報のメールアドレスを入力する
- 保存して次へを押す
7. スコープ
- 保存して次へを押す
8. テストユーザー
- 保存して次へを押す
9. 概要
- ダッシュボードに戻るを押す
10. アプリを公開する
OAuth クライアント ID の作成編
1. 認証情報編の3 OAuth クライアント IDを選択するまでやる
2. OAuth クライアント ID の作成
- ウェブアプリケーションを選択する
- 承認済みのリダイレクト URLに(https://developers.google.com/oauthplayground)を入力する
- 作成を押す
3. クライアントIDとクライアントシークレットをメモする
リフレッシュトークン取得編
に移動する
1. 歯車を押してクライアントIDとクライアントシークレットを入力する
https://mail.google.com/」を入力し「Authorize APIs」を押す
2. 「Step 1」の下部にある「Input your own scopes」に「3. 自分のメアドを選択して許可する
※ 安全でない云々が出た場合は左下の詳細から続行できる
4.「Step 2」に進むので「Exchange authorization code for tokens」を押す
5. リフレッシュトークンをメモする
メール送信確認編
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にクローズされました