넷슈퍼 배달 예정일시를 캘린더에 자동 등록

소개



무거운 것 (쌀이나 물 등)을 살 때는 넷슈퍼를 이용하고 있습니다.
제대로 받기 위해서는 배달 예정 시간에 외출하지 않도록 조심해야 합니다.

그래서, 주문시에 송신되는 메일을 해석해 배달 예정 일시를 캘린더에 등록하는 스크립트를 작성했습니다.

이미지





처리



GoogleAppsScript에서 만들었습니다.
  • 트리거: 5분마다
  • function main() {
    
      var predicate = function(thread) {
        return thread.getFirstMessageSubject() == "[ご注文確認]SEIYUドットコム";
      }
      var regex = new RegExp(/・お届け日時:([0-9]+\/[0-9]+\/[0-9]+) ([0-9]+)([0-9]+)分~([0-9]+)([0-9]+)分/);
    
      // カレンダーを取得
      var calendar = CalendarApp.getCalendarById('[email protected]');
    
      // スレッドを取得
      var threads = GmailApp.getInboxThreads().filter(predicate);
      threads.forEach(function(thread) {
        // メッセージを取得
        var messages = thread.getMessages();
        messages.forEach(function(message) {
          // 本文を取得
          var body = message.getPlainBody();
    
          // お届け日時を取得
          var match = body.match(regex);
          var date = match[1];
          var fromHour = match[2];
          var fromMinute = match[3];
          var toHour = match[4];
          var toMinute = match[5];
    
          // カレンダーに予定追加
          calendar.createEvent("[SEIYU]ネットスーパー",
                               new Date(date + " " + fromHour + ":" + fromMinute + ":00"),
                               new Date(date + " " + toHour + ":" + toMinute + ":00"));
    
          // メールを既読にする
          message.markRead();
        });
        // スレッドをアーカイブ
        thread.moveToArchive();
      });
    }
    

    동작 확인



    Google 캘린더를 확인합니다.


    Gmail의 수신 BOX도 확인하여 처리 중임을 확인했습니다.

    감상



    통신판매 서비스는 거의 반드시 주문 확인 메일을 보내 주기 때문에, 응용하면 다른 통신판매도 할 수 있을 것 같습니다.

    좋은 웹페이지 즐겨찾기