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で「小説家になろう」サイトの更新通知をLINEに送る方法
Google Apps Scriptの勉強として「小説家になろう」サイトの特定小 ...
-
-
GASで特定サイトにログインした後にスクレイピングを行う方法
Google Apps Scriptの勉強として特定サイトにログインし、その後に ...
-
-
GASを利用してGmailに届いたメール内容をGoogleスプレッドシートに記入する方法
WordPressのContact Form7から送信した内容をGmailで受け ...
-
-
GASとGoogleアナリティクスを連携させ昨日分のアクセス数TOP3位のページタイトル及び合計アクセス数を取得する方法
GASとGoogleアナリティクスを連携させて「昨日分のアクセス数TOP3位のペ ...
-
-
GASで「カクヨム」の更新状況をスクレイピングで取得する
Google Apps Scriptの勉強として「カクヨム」の指定した小説が更新 ...