Node.js Gmailを簡単に送信する

こんにちは。レモンティーです。

今回はNode.jsでGmailを送信します。
developers.google.com

GASを使えばすごく簡単に送信できる上に定期実行もできるので基本的にはGASでやればいいです。
ただローカルファイルがらみでWindowsのタスクスケジューラで定期実行してそのログを通知したいけど「電子メールの送信」が非推奨になっているといった場合には使用できます。

Node.jsからGmailを送る場合はGASよりは少し書く量が増えます。そこで簡単にするためにそれを包んでgmail-senderなるものをつくります。
こことかが参考になります。)

これを使うと

index.js

const gs = require('gmail-sender');

gs.sendMail("to@gmail.com","タイトル","本文");

でGmailが送信できます。

install

npm i allgf27/gmail-sender

token.jsonを作成

まずは認証のためtokenをつくります。tokenをつくるにはcredentials.jsonが必要です。
これはGoogleCloudPlatformの「APIとサービス>認証情報>認証情報を作成>OAuthクライアントID」で作成できます。
つくったら、認証情報画面のOAuth 2.0 クライアント IDの一覧の右端にあるダウンロードマークでダウンロード。
ダウンロードしたらcredentials.jsonにリネームしてプロジェクトのルートに配置します。

配置したら以下のコマンドを実行します。

node node_modules/gmail-sender/create-token.js

そうすると以下のように表示されますので、ブラウザで長いURLに飛んで認証します。

Authorize this app by visiting this url:長いURL

認証すると文字列が表示されるのでそれをコピーしてターミナルの以下の表示のところに張り付けてEnterを押します。

Enter the code from that page here:

これで認証は完了し、token.jsonが生成されます。
sendMailメソッドを使えるようになりました。

送信

以下のように送信できます。

index.js

const gs = require('gmail-sender');

(async () => {
  const res = await gs.sendMail("to@gmail.com","タイトル","本文");
  console.lolg(res);
})();

もちろん冒頭のコードでも動きます。

割り当て

メール送信が一回100QUで一日の割り当てが10億QU?なので通知用ならまず大丈夫そう
developers.google.com


今回はこれでおしまいです。
www.sawalemontea.com