- 複合機で受信したFAXをGmailに転送している(前提環境)
- Gmailで受け取ったFAX受信メールに添付されているPDFをGoogle共有ドライブにアップロードする
- アップロード完了後、SlackにFAX受信があった旨を通知する
- GASをタスクで定期実行し、FAX受信後に自動的にアップロード・通知されるようにする
Last active
April 29, 2021 01:05
-
-
Save W-Yoshida/ce9fd6b08e5650657dba80e570641b18 to your computer and use it in GitHub Desktop.
FAX受信メールのPDFをGoogleドライブにアップロードしてSlack通知するGAS
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
function uploadFaxPDFtoDrive() { | |
var folderId = '[YourGoogleSharedDriveId]'; | |
var folder = DriveApp.getFolderById(folderId); | |
var label = GmailApp.getUserLabelByName('アップロード済'); | |
//FAXメールの抽出条件 | |
var threads = GmailApp.search('subject:FAX filename:pdf has:nouserlabels', 0, 500); | |
//対象のメールが存在しない場合は処理を終了 | |
if(threads.length == 0) | |
{ | |
console.log("新着メールなし"); | |
return; | |
} | |
//Googleドライブに添付ファイルをアップロード | |
try | |
{ | |
threads.forEach(function(thread){ | |
var messages = GmailApp.getMessagesForThread(thread); | |
for(var i = 0; i < messages.length; i++) { | |
//スレッドに既読メールが含まれる場合は処理をスキップ | |
if(messages[i].isUnread()) | |
{ | |
var attachments = messages[i].getAttachments(); | |
for(var j = 0; j < attachments.length; j++){ | |
folder.createFile(attachments[j]); | |
} | |
} | |
} | |
//アップロード済みのスレッドを既読にしてラベルを付ける | |
thread.addLabel(label); | |
thread.markRead(); | |
}); | |
//Slackへ通知 | |
var botName = 'SlackBot'; | |
var botIcon = ':fax:'; | |
var slackWebhookURL = '[YourSlackWebhookURL]'; | |
var slackMessage = 'FAXが届きました!\n' + 'https://drive.google.com/drive/folders/' + folderId; | |
var jsonData = | |
{ | |
"username" : botName, | |
"icon_emoji" : botIcon, | |
"text" : slackMessage | |
}; | |
var payload = JSON.stringify(jsonData); | |
var options = | |
{ | |
"method" : "post", | |
"contentType" : "application/json", | |
"payload" : payload | |
}; | |
UrlFetchApp.fetch(slackWebhookURL, options); | |
}catch(e){ | |
console.log(e); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment