#※自分用の覚書です
##課題提出
条件
-学生からの課題提出をGmailで受け付けている
-学生は課題提出時に,提出期限日を含めた件名をつけなければならない (例:progc1:20190607)
##準備
課題毎で提出時の件名が定まっているので,件名を使ってラベル分けする.
##やりたいこと
誰が提出したかを確認したい
→学生のアドレスは学籍番号が含まれるため,送信元アドレスが分かれば誰の提出かわかる
→ラベル分けしたメール一覧から送信元アドレスを取れればよい(要するにこれだけ)
##実装
Gmailのデータを処理したいので,GASが便利
##GASソースコード
function getMail() {
var label = Browser.inputBox("label name");
var start = 0;
var max = 500;
return GmailApp.search('label:' + label, start, max);
}
function onSaveMailToSheet() {
var sheetName = 'シート1';
var ss = SpreadsheetApp.getActive().getSheetByName( sheetName );
var row = ss.getLastRow() + 1;
var threads = getMail();
for( var i in threads ) {
var thread = threads[i];
var msgs = thread.getMessages();
for( var j in msgs ) {
var msg = msgs[j];
var date = msg.getDate();
var from = msg.getFrom();
var values = [
[date, from]
];
ss.getRange("A" + row +":B" + row).setValues(values);
row++;
}
}
}
inputでlabelを入力
GmailApp.search 入力されたラベルに一致するメール(スレッド)を入手
msgs=thread.getMessages() スレッドをメッセージ単位に分割
date=msg.getDate()
from=msg.getFrom() 日付と送信元アドレスを入手
ただしこのままではメールの送信者が "kanon"dawka@ga.fa.jp などの場合にこのままgetされるので,区切る必要あり