前回の記事で、簡易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()
}
}
}
あとはデバッグボタン押してパーミッション設定したら、トリガー設定で何分かごとで動くように設定すれば自動メール添付ファイル振り分けドライブ保存は設定完了です。
思い付きで適当に書いたけど、コレもしかして便利じゃね????
