##目的
Gmailで受信されたメールに対し
・指定の題目
・指定の期日
で合致したメールについて
・設定したメッセージ
・日時
・メールの題目
をLINEで通知してもらおう!
やり方
LINE Nortify (https://notify-bot.line.me/ja/) と Google Apps Scriptに関してはググって!(かんたん!)
コード(これを書き残したかっただけ)
const lineToken = "xxxxxxxxxxx"; //LINE token"
const getInterval = 5; //現在時間より何分前か指定する
const query = "[Error] xxxxxxx"; //subjectを指定する
const sendMailBody = "subject指定されたメールが受信されました!!"; //通知一行目
function sendLine(Me){
const payload = {'message' : Me};
const options ={
"method" : "post",
"payload" : payload,
"headers" : {"Authorization" : "Bearer "+ lineToken}
};
UrlFetchApp.fetch("https://notify-api.line.me/api/notify", options);
}
function fetchContantMail() {
const nowTime= Math.floor(new Date().getTime() / 1000) ;
const timeTerm = nowTime - ((60 * getIterval) + 3);
//条件指定
const strTerms = 'after:'+ timeTerm +' '+ query;
//結果取得
const myThreads = GmailApp.search(strTerms);
const myMsgs = GmailApp.getMessagesForThreads(myThreads);
var getMessages = [];
for(var i = 0; i < myMsgs.length;i++){
getMessages[i] = ": " + sendMailBody
+ "\n[date]: " + myMsgs[i].slice(-1)[0].getDate()
// + "\n[from]" + myMsgs[i].slice(-1)[0].getFrom() //src及びdist
+ "\n[sbject]: " + myMsgs[i].slice(-1)[0].getSubject();
// + "\n\n[Message]\n"+ myMsgs[i].slice(-1)[0].getPlainBody(); //本文用
}
return getMessages;
}
function main() {
var newMails = fetchContantMail()
if(newMails.length > 0){
for(var i = newMails.length -1; i >= 0; i--){
sendLine(newMails[i]);
}
}
else {
console.log('Not matching mails');
}
}
トリガー(イベント)はGAS編集画面にて、編集タブ -> 現在のプロジェクトのトリガ でよしなに設定して!
今困ってること
LineのグループってURLでは招待はできないことに設定後気がついた。
一度友達にならないと招待できないみたい。恥ずかしがり屋のひきこもりなのでわからなかった、悲しい。