GASとGmailを連携させて受信メール検索及びメール送信
Google Apps ScriptとGmailを連携させてみたい。「未読かつ特定のアドレスから受信」というように条件指定したメールを検索したり、GAS経由でGmailを送信する(ついでにGoogleドライブと連携してファイル添付する)方法をメモ。
メール関連のリファレンス
https://developers.google.com/apps-script/reference/gmail/
受信メールを条件指定検索
ソース
function getMail(){ //検索キーワード指定 //未読を検索 const query = 'is: unread'; //送信元メールアドレスを指定して検索 //const query = 'from: hoge@hoge.jp'; //件名を指定して検索 //const query = 'subject: メール件名'; //未読かつメールアドレス指定で検索 //const query = 'is: unread from:hoge@hoge.jp'; //開始行 const start = 0; //終了行 const max = 10; //メールの検索 const threads = GmailApp.search(query, start, max); //メールの取得 const messagesForThreads = GmailApp.getMessagesForThreads(threads); for(const messages of messagesForThreads){ //メール件名 console.log(messages[0].getSubject()); //メール本文 console.log(messages[0].getBody()); } }
注意点
GASの利用制限ページを見るとGmailの読み書きは20,000件/日(無料アカウントの場合)と余裕があるように見えるが、以下記事を見る限りではそうでもないっぽい。
https://tonari-it.com/gas-gmail-search-limit/#toc2
件数指定やある程度条件で絞り込んで運用する必要あり。
メール送信
ソース
//メール送信 function sendMail(){ //送信先メールアドレス const recipient = 'hoge@hoge.jp'; //メール件名 const subject = 'テストメール件名'; //メール本文 const body = "メール本文\n改行\nメール本文"; //添付ファイルのフォルダ指定 const folder = DriveApp.getFolderById('xxxxxxxxxxxxxxxx'); //添付ファイル指定 const file = folder.getFilesByName('test.pdf').next() //メール送信 GmailApp.sendEmail(recipient, subject, body, {attachments: [file]}) }
Googleドライブのフォルダ指定
Googleドライブでフォルダを作成し、ブラウザからアクセスすると「https://drive.google.com/drive/folders/xxxxxxxxxxxx」のようなURLになる。「xxxxxxxxxxxx」の部分を「const folder = DriveApp.getFolderById('xxxxxxxxxxxxxxxx');」に指定する。
送信上限数
無料アカウントの場合、100件/日とかなり少ない点に注意する。可能な限り送信内容はまとめて送信件数を減らすか、以下のようなLINE通知にする形を取るほうが良さそう。
所感
受信メールの条件指定検索は「未読かつ対応優先順位が高いアドレスからのメール」があればLINEに通知を送る等で個人ツールとしては使えそう。メール送信の方は上限が低い為、使いどころが難しい。
関連記事
-
GASを利用してGmailに届いたメール内容をGoogleスプレッドシートに記入する方法
WordPressのContact Form7から送信した内容をGmailで受け ...
-
GASでGoogleカレンダーと連携してイベントの取得・追加・削除
Google Apps Scriptの勉強としてGoogleカレンダーと連携させ ...
-
GASで「カクヨム」の更新状況をスクレイピングで取得する
Google Apps Scriptの勉強として「カクヨム」の指定した小説が更新 ...
-
GASとChatworkを連携してメッセージを送信する方法
Google Apps Scriptの勉強として「Chatwork」と連携させて ...
-
GASとAdSense Management APIを使って前日分の売り上げをメール通知する方法
Googleアドセンスの売り上げをチェックする際、いつもはアドセンスの管理画面に ...