//程式碼開始
var Line_Notify_Token = "y9m61pJjHAki8yNi9jfn8BOmuFOYUPjtLfQ5sXbRa4U"; //Line Notify 的權杖
var rootFolderID = "1o_vJz2qn0NApFbce5PnsGGsKrBZxmw4Y"; //存放信件附件的資料夾
var labelNames = ["CCTV"]; //inbox 就是收件夾,但這樣會搜尋所有信件,降低程式持行效率,建議還是自行新增標籤及建立篩選器來提升效率
var everyMailinLabel = 1; //設為 0:只傳送標籤內每個會話群組內第一封未讀取的郵件; 設為 1:傳送標籤內每個會話群組每一封未讀取的郵件。
function getGmailMessage() {
var labels = "";
var endNum = 1;
for (var i = 0; i < labelNames.length; i++) {
labels += "label:" + labelNames[i] + " ";
}
if (everyMailinLabel === 1) {var Emails = GmailApp.search(labels);}
else {var Emails = GmailApp.search(labels + "label:unread");}
for (var i = Emails.length - 1; i >= 0 ; i--){
var messageData = Emails[i].getMessages();
if (everyMailinLabel == 1) {endNum = messageData.length;}
for (var j = 0; j < endNum; j++) {
if (messageData[j].isUnread()) {
var messageSubject = messageData[j].getSubject();
var messageFrom = removeHtmlTag(messageData[j].getFrom());
var messageBody = removeHtmlTag(messageData[j].getBody());
var lineContent = "\n\n來自:" + messageFrom + "\n\n";
lineContent += "主旨:" + messageSubject + "\n\n";
lineContent += "內容:\n" + messageBody;
var messageAttachments = messageData[j].getAttachments();
if (messageAttachments.length > 0) {
var rootFolder = DriveApp.getFolderById(rootFolderID);
try {
var destinationFolder = rootFolder.getFoldersByName(messageData[j].getId()).next();
}
catch(err) {
var destinationFolder = rootFolder.createFolder(messageData[j].getId());
}
var fileLocation = "https://drive.google.com/open?id=" + destinationFolder.getId();
for (var k = 0; k < messageAttachments.length; k++) {
var files = destinationFolder.createFile(messageAttachments[k].copyBlob());
files.setName(messageAttachments[k].getName());
}
lineContent += "\n\n附件:請參閱 " + fileLocation;
}
sendLineNotify(lineContent, Line_Notify_Token);
messageData[j].markRead();
}
}
}
}
//傳送 Line Notify 訊息
function sendLineNotify(message, Line_Notify_Token){
var url = "https://notify-api.line.me/api/notify";
var options =
{
"method" : "post",
"payload" : {"message" : message},
"headers" : {"Authorization" : "Bearer " + Line_Notify_Token}
};
return UrlFetchApp.fetch(url, options);
}
//清除 html 標籤
function removeHtmlTag(stringContent) {
stringContent = stringContent.replace(//g, "\n");
var reTag = /<(?:.|\s)*?>/g;
stringContent = stringContent.replace(reTag, "");
stringContent = stringContent.replace(/</g, "<");
return stringContent.replace(/>/g, ">");
}
//程式碼結束