結論
下記コードをGASに記述するとokです
//LINEにメッセージを送信する
function sendLineMessage(message) {
// lineのtokenをhogeの代わりに入れる
const LINE_NOTIFY_TOKEN = "hoge";
const Authorization = `Bearer ${LINE_NOTIFY_TOKEN}`
// エンドポイントが変わったら下記変更
const LINE_ENDPOINT = "https://notify-api.line.me/api/notify"
const option = {
"method": "post",
"headers": {Authorization},
"payload": {message}
}
let response = UrlFetchApp.fetch(LINE_ENDPOINT, option);
}
//メールをチェックし条件に該当するメールをLINEに通知する
function main() {
let now = new Date();
let monthStartDate = new Date(now.getFullYear(), now.getMonth(), 1);
let monthEndDate = new Date(now.getFullYear(), now.getMonth() + 1, -1);
let firstDay = Utilities.formatDate(monthStartDate, 'Asia/Tokyo', 'yyyy/MM/dd')
let endDay = Utilities.formatDate(monthEndDate, 'Asia/Tokyo', 'yyyy/MM/dd')
let query = "is:unread subject:{(検索タイトルA)(検索タイトルB)} after:" + firstDay + "before:" + endDay + "";
console.log(query)
//指定した条件でスレッドを検索して取得
let myThreads = GmailApp.search(query);
let threads = GmailApp.getMessagesForThreads(myThreads);
// threadsは2次元配列
threads.forEach(messages => {
// 良くわからないが0番目取得w
let msg = messages[0]
// msgはclass
console.log(msg.getSubject())
sendLineMessage(msg.getSubject())
// 既読にする
// msg.markRead()
})
})
}
lineに通知するためのすること
参考にしたサイト
// 参考 コードを参考にしたのはこのひと
https://pg-log.com/gas-gmail-to-line/
// 参考 Line token取得するところ
https://notify-bot.line.me/ja/
// 参考 GmailApp class参考
https://tonari-it.com/gas-gmail-search-thread/#toc5
注意点など
1. threadsの中身見ないと時間ロスするかも知れない説
main関数の最後付近でthreadsをfor文回してますが、2次元配列になってたり中身が辞書でvalueのところが関数になってる感じなのでlog見ながらが進めた方が良かったです。
2. 迷ったら「var」でok
かっこつけてjavascriptの新しいの使ってます。ですが他の人のコードは「const」や「let」を「var」で記述しています。ほぼ同じ意味ですが、varで問題ないので良くわからない人はvarでokです。