/** * Retrieves all inbox threads and logs the respective subject lines. * For more information on using the GMail API, see * https://developers.google.com/apps-script/class_gmailapp */ /* ----------------------------------------------------------------   出動支援情報システム(Homulert)スクリプト   Ver.0.9.2014.09.24.1 (Builded in 24/09/2014)  導入時に変更が必要な部分については、★マークで印をつけています。   変更にあたっては、不必要な部分には決して触れないでください。  注意文もよく読んだ上で、正確な記述に努めてください。 ---------------------------------------------------------------- */ function processInbox() { // ★出動指令メール送信元(消防本部等) //   出動指令メールかどうかの判定基準に用いるので正確に。 const MAIL_ADDRESS_FROM = '119@fire.jp'; // ★出動支援情報(本件メール)送信先 //  'homura-akemi@mitakihara.ne.jp,gaharasan0707@naoetsu.com,sudachikun@tokushima.jp'のように記述。 const MAIL_ADDRESS_SEND_TO = 'omaemoner@gmail.com,8-toshin@2ch.ne.jp'; // ★出動支援情報(本件メール)送信元 //  gmail以外の場合は別途設定が必要(よく分からないのであればgmail推奨)。 //  gmailとこのシステムを置くGoogle Driveは同じアカウントで。 const MAIL_ADDRESS_SEND_FROM = 'jvfc@gmail.com'; // ★出動指令メールタイトル名(題名) //  出動指令メールかどうかの判定基準に用いるので、一字一句正確に記述。 //  特に半角英数字と全角英数字、記号等に要注意。コピーアンドペーストでも可。 const MAIL_SUBJECT = '出動指令'; // Google Maps URL const GOOGLE_MAP_URL = 'https://www.google.co.jp/maps/place/'; // get all threads in inbox var threads = GmailApp.getInboxThreads(0, 3); for (var i = 0; i < threads.length; i++) { // get all messages in a given thread var messages = threads[i].getMessages(); // iterate over each message for (var j = 0; j < messages.length; j++) { // 新着判定 if( !messages[j].isUnread() )continue; // 件名判定 if( messages[j].getSubject() != MAIL_SUBJECT )continue; // 送信元取得 var from = messages[j].getFrom(); if( from.indexOf("<") != -1){ from = from.match( /<([^<]*)>/ )[1]; } // アドレス判定 if( from != MAIL_ADDRESS_FROM )continue; // 既読チェック messages[j].markRead(); var mes = messages[j].getBody(); // ★住所判定・抽出 //   mes = mes.match( /住所:([^<]*)/ );を変更する。 //   ここの変更は特に注意。 //   ([^<]*)を住所と仮定して、出動指令メールに即したスタイルに書く。 //   /はそれぞれ行頭と行末を示すものとして扱う。 // //    ※例: 車両火災 第一出動 //        場所…見滝原3丁目1−1 //        目標…市立見滝原中学校駐車場 //      → mes = mes.match( /場所…([^<]*/ );と記述。 // //    ※例: 第二出動(建物火災) //        住所 練馬区三千院町7丁目72-9393 //        対象物 春風宅 //      → mes = mes.match( /住所 ([^<]*/ );と記述。 mes = mes.match( /住所:([^<]*)/ ); if( mes == null || mes == undefined )continue; mes = mes[1]; // ★住所補正 //   本システムはGoogle Mapsの検索機能を場所特定に利用しています。 //   その為、出動指令メールの住所表記によってはここで修正を加えます。 //   主な場合として、都道府県名・市町村名の追記があります。 //    例…指令メールの住所表記が「徳島市南常三島町×丁目◯-△△」→"徳島県" //    例…指令メールの住所表記が「小倉北区足立a丁目b-cd」→"福岡県北九州市" mes = "徳島県徳島市" + mes; // URL生成 var url = GOOGLE_MAP_URL + mes; url = encodeURI(url); //地図画像生成 var png = getMapImage(mes); // ★メール本文テンプレート //   必要に応じて書き換えて下さい。 var mailtext = "出動指令を次のように解析しました。" + "\n\n" + "出動先住所" + "\n" + mes + "\n\n" + "地図上の位置" + "\n" + url + "\n\n" + "※地図はGoogle Mapsサービスを利用しており、出動指令の住所表記によっては正確に動作しない場合があります。" + "\n\n" + "※Google Mapsサービスを利用するには、インターネットに接続する必要があります。その為、インターネット回線の状況によっては利用できない場合や、動作が遅くなる場合があります。"; // ★出動指令メール送信 //   出動支援情報メールのタイトル(題名)を設定します。適宜設定してください。 var MAIL_TITLE = "出動指令 ― 出動支援情報" // メール送信 GmailApp.sendEmail( MAIL_ADDRESS_SEND_TO, MAIL_TITLE, mailtext, { from: MAIL_ADDRESS_SEND_FROM, attachments:[png] }); } } }; function getMapImage(point) { var map = Maps.newStaticMap().setSize(600, 800) .setCenter(point).setZoom(16).setLanguage('ja') .setMapType(Maps.StaticMap.Type.ROADMAP); map.addMarker(point); return map.getBlob().getAs(MimeType.PNG); }