前回の記事で、簡易OCR機能はやはりGoogleドキュメントが優秀だなーって再認識した。
簡易OCRの比較 Microsoft OneNote vs Googleドキュメント
なので、今日はGoogleドライブに保存されたイメージファイルをGoogleドキュメントとして開くというのをより有効活用できるようなApps Scriptを思いついて書いてみた。
全体のイメージとしてはこんな感じ。
以前に紹介したBizFAXスマートキャストというサービスを使うと、FAX受信もPDFでメール受けできるらしい。(X社とかなら複合機でもメール連携はできそうだけども。)
それをGmailで受けてFrom番号でフォルダ振り分けつつGoogleドライブに自動保存して、そこから右クリックのGoogleドキュメントで開くってやるとすごくスムーズに簡易OCRを使えるのでは?って思った次第です。
BizFAXスマートキャスト(Mail to FAX)へVBSで送信
1.添付ファイルを保存するフォルダを作る。
まずは、添付ファイルの保存先になるフォルダをGoogleドライブ上に作っときます。
今回のサンプルではこんな感じにテキトーに用意した。
で、それぞれのフォルダをブラウザで開いてURLからフォルダIDをメモに控えておく。
2.保存先判断のスプレッドシートを用意する。
次に、本文キーワードと控えたフォルダIDを紐づけるスプレッドシートを新規に作る。
- 1列目には本文キーワード(今回だとFAXのFrom番号てことにした。)
- 2列目には、工程1で控えたフォルダIDを列挙
- 最終行のキーワードは「other」にしとく。
で、このスプレッドシートはApps Scriptから参照するから、これまたシートIDはURLから控えておく。
3.Google Apps Scriptを書く。
今回のケースでは、「件名+未読」でメール検索して添付ファイル保存が完了したらそのメールを既読に設定しています。
以下のスクリプトを張り付けて、2か所を編集する。
- 【ご希望のメール件名】
- 【ここにスプレッドシートID】
function myFunction() { getPdfFromMailAttachToDrive(); } function getPdfFromMailAttachToDrive(){ const mlthread = GmailApp.search('is:unread subject:"【ご希望のメール件名】"'); for(let thd of mlthread){ const msgs = thd.getMessages(); for(let msg of msgs){ let fldrID = getFolderIdFromMsg(msg.getBody()); let folder = DriveApp.getFolderById(fldrID); let atchs = msg.getAttachments() for(let atch of atchs){ folder.createFile(atch); } GmailApp.markMessageRead(msg); } } } function getFolderIdFromMsg(mlbody){ var spreadsheet = SpreadsheetApp.openById('【ここにスプレッドシートID】'); var sheet = spreadsheet.getSheetByName('folderlist'); let lastR=sheet.getLastRow(); for(let r = 2;lastR;r++){ let fax = sheet.getRange(r, 1).getValue(); if(fax == "other" || mlbody.indexOf(fax) != -1){ return sheet.getRange(r, 2).getValue() } } }
あとはデバッグボタン押してパーミッション設定したら、トリガー設定で何分かごとで動くように設定すれば自動メール添付ファイル振り分けドライブ保存は設定完了です。
思い付きで適当に書いたけど、コレもしかして便利じゃね????