20210507

 いつまでもペーパーレスをしない、そもそも雰囲気でペーパーレスせんといかんなーと言うだけで何も考えないし考える能力もない弊社。
 ケツを叩かないとなーということで複合機でFAX受信したものをslackで共有したいなぁと調べてみた。で、このページに辿り着く。

受信したFAXをGASでGoogleドライブにアップしてSlack通知する
https://note.com/w_yoshida/n/ne1e213cfb440

 お、これいいやんと思いつつ、ファイルごとに1メッセージずつ通知出したいなーとか、ファイルへの直リンクをメッセージに入れたいなーと思ったので下記の様に改変して上手くいったので嬉しかったけど満足したので帰りたくなった。

function uploadFaxPDFtoDrive() {
var folderId = '[YourGoogleSharedDriveId]';
var folder = DriveApp.getFolderById(folderId);
var label = GmailApp.getUserLabelByName('アップロード済');
var botName = 'SlackBot';
var botIcon = ':fax:';
var slackWebhookURL = '[YourSlackWebhookURL]';

//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++){
var drive_file = folder.createFile(attachments[j]);
//Slackへ通知
var slackMessage = 'FAXが届きました!\n' + drive_file;

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);
}
}
}
//アップロード済みのスレッドを既読にしてラベルを付ける
thread.addLabel(label);
thread.markRead();
});


}catch(e){
console.log(e);
}
}

 今更『インターステラー』観た。

 タケヤリさんの心の映画なので『桜川マキシム』で語ろう。

SNSでもご購読できます。