텍스트 파트 표시 Gmail 애드온 만들기

계기



Gmail에서 텍스트 파트를 선택적으로 표시하는 기능이 없어지고 나서 오랜 오늘 요즘입니다만, 멀티 파트 메일의 송신 테스트로 텍스트 파트의 내용을 육안 확인을 하지 않으면 안 되는 장면이 있습니다(날마다, 고객에게 보내고 있다 메일의 내용에 문제가 없는지 최종 확인하는 아레입니다).

Gmail의 경우 자동으로 HTML 파트가 표시되므로 텍스트 파트를 표시하려고하면
  • 이메일 소스 보기
  • 텍스트 파트를 클립보드에 복사

  • 디코딩 도구 로 디코딩
  • 내용 확인

  • 라고 하는 순서를 밟을 필요가 있어, 거기 부담이 됩니다. 물론, 오래된 Becky! 모나 Thunderbird 모 같은 메일러를 사용하면 텍스트 파트의 내용은 확인할 수 있습니다만, 모처럼 Gmail을 메인으로 사용하고 있다면, 텍스트 파트의 확인도 Gmail로 완결시키고 싶다 그건 그렇고.

    그래서 Gmail에서 텍스트 파트를 표시하는 애드온을 만들어 보기로 했습니다.

    Gmail 애드온 기본



    Gmail 애드온에 대해서는 공식 정보을 보는 것이 좋습니다. 단 4단계만으로 샘플 애드온을 만들 수 있습니다. 이번 작성하는 것도 기본적으로는 이것을 베이스로 하고 있습니다.

    실제 코드



    작성하는 코드는 매니페스트 파일과 Google App Script 구현 2 파일뿐입니다.

    appscript.json



    우선 매니페스트 파일에서 살펴 보겠습니다. 내용은 매우 보통이지만, 포인트는 oauthScopes에게 메시지 내용에 액세스하기 위해 https://www.googleapis.com/auth/gmail.addons.current.message.readonly의 권한을 부여하고 있다는 것입니다.

    appscript.json
    {
      "oauthScopes": [
        "https://www.googleapis.com/auth/gmail.addons.execute",
        "https://www.googleapis.com/auth/gmail.addons.current.message.metadata",
        "https://www.googleapis.com/auth/gmail.addons.current.message.readonly"
      ],
      "gmail": {
        "name": "text/plain",
        "logoUrl": "https://www.gstatic.com/images/icons/material/system/1x/label_googblue_24dp.png",
        "contextualTriggers": [{
          "unconditional": {
          },
          "onTriggerFunction": "buildAddOn"
        }],
        "primaryColor": "#4285F4",
        "secondaryColor": "#4285F4"
      }
    }
    

    Code.js



    실은 파일명은 무엇이든 좋지만, 매니페스트 파일의 onTriggerFunction 로 지정한 엔트리 포인트가 되는 함수를 구현하고 있습니다. 포인트가 되는 것은 텍스트 파트의 내용을 취득하고 있는 message.getPlainBody() 의 부분입니다. 메일은 여러가지 문자 코드로 보내져 오므로, ISO-2022-JP라든지 UTF-8등을 스스로 디코드하지 않으면 안 될까 생각하고, 전부 Google App Script측에서 디코드 처리까지 해 줍니다. 초락 진.

    Code.js
    function buildAddOn(e) {
      // Activate temporary Gmail add-on scopes.
      var accessToken = e.messageMetadata.accessToken;
      GmailApp.setCurrentMessageAccessToken(accessToken);
    
      var messageId = e.messageMetadata.messageId;
      var message = GmailApp.getMessageById(messageId);
    
      // Section for text/plain part
      var section = CardService.newCardSection();
      var textPart = CardService.newTextParagraph()
        .setText(message.getPlainBody());
      section.addWidget(textPart);
    
      // Build the main card after adding the section.
      var card = CardService.newCardBuilder()
        .addSection(section)
        .build();
    
      return [card];
    }
    

    이런 느낌의 프로젝트를 만들어 먼저 소개한 순서로 배포를 하면 OK입니다.



    실행해보기



    애드온을 설치한 Gmail에서 이메일을 선택하면 애드온 화면에 텍스트 파트의 내용이 표시됩니다.


    난점으로서는, 이하와 같은 것이 있습니다만, 어느 정도 쭉 확인하는 목적이면 우선 사용물이 될 것 같습니다.
  • 애드온의 화면 너비는 고정되어 있으며 텍스트 파트를 보려면 솔직히 조금 좁습니다
  • 긴 링크 등이 접히지 않고 도중에 끊어 버리므로 전체 내용을 확인할 수 없다.

    Gmail 15주년 축하합니다!
  • 좋은 웹페이지 즐겨찾기