임시보관 메일 작성하기

Google Workspace 부가기능에서 위젯을 만들 수 있습니다. 연결된 작업이 있는 캠페인. 이때 새 이메일 초안을 작성하는 작업을 수행하고, 원하는 경우 부가기능 UI에 입력된 정보 또는 열려 있는 메시지의 정보 예를 들어, 부가기능의 메시지 UI 이 함수는 현재 열려 있는 메시지에 답장하는 정보를 삭제할 수 있습니다

메일을 작성하는 작업이 트리거되면 Gmail에서 콜백을 실행합니다. 함수를 사용하여 초안을 빌드하고 반환합니다. 그러면 Gmail은 사용자가 편집하고 전송할 수 있는 표준 이메일 작성 창의 UI 변경할 수 있습니다

초안 메시지를 빌드하는 작업 구성

선택 시 초안 작성 작업을 시작하도록 위젯을 구성하려면 다음을 실행해야 합니다. 다음을 수행하세요.

  1. 매니페스트 확인 여기에는 action.compose 범위:

    https://www.googleapis.com/auth/gmail.addons.current.action.compose

    대신 더 많은 허용 범위를 사용할 수 있지만 다음과 같은 경우에만 사용해야 합니다. 그 범위는 절대적으로 필요합니다

  2. Action 객체 만들기 콜백 함수와 연결합니다. 정의할 수 있습니다

  3. 위젯의 setComposeAction() 호출 위젯 핸들러 함수 Action 객체를 지정하고 ComposeEmailType를 탭합니다.

  4. 초안 빌드 작업을 실행하는 콜백 함수를 구현합니다. 이 함수에 이벤트 객체가 제공됩니다. 를 인수로 사용합니다. 이 콜백 함수는 다음을 실행해야 합니다.

    1. GmailDraft 만들기 객체를 지정합니다.
    2. ComposeActionResponse 빌드 ComposeActionResponseBuilder 객체를 사용하여 클래스 및 GmailDraft 객체를 지정합니다.
    3. 빌드된 ComposeActionResponse를 반환합니다.

GmailDraft를 미리 채울 수 있습니다. 를 사용하여 콜백 함수에서 생성하는 여기에는 수신자, 제목, 메일 본문, 첨부파일이 있습니다. 초안을 채우려면 데이터는 모든 소스에서 가져올 수 있지만 일반적으로 정보에서 파생됩니다. 부가기능 자체, 열린 메시지의 정보 또는 서드 파티 서비스에서 수집한 정보 이 이벤트 객체 콜백 함수에 전달되는 메시지에는 열려 있는 메시지 ID와 기타 부가기능이 있습니다. 초안을 미리 채우는 데 사용할 수 있는 정보를 제공합니다.

새로운 독립형 메일이나 답장으로 초안을 만들 수 있습니다. 추가할 수 있습니다. 이는 Kubernetes에서 ComposeEmailType 드림 열거형 setComposeAction() 단일 답장 또는 '전체답장'으로 답장 초안을 만들 수 있습니다. 메시지를 보낼 수 있습니다

독립형 초안

독립형 초안은 새 대화목록을 시작하며 기존 대화목록에 대한 답장이 아닙니다. 메시지가 표시됩니다. 다음 중 하나를 사용하여 독립형 초안을 만들 수 있습니다. Gmail 서비스 기능:

답장 초안

답장 초안은 기존 메일 대화목록의 일부입니다. 답글 초안은 다음 중 하나에 해당합니다. 메일 발신자 또는 '전체답장'으로만 전송된 단일 답장 해당 메일을 받은 모든 사용자에게 전송된 임시보관 메일입니다. 사용자는 다음 Gmail 서비스 중 하나로 답장 초안 함수:

다음 코드 스니펫은 답장을 작성하는 작업을 할당하는 방법을 보여줍니다. 버튼에 추가합니다

  var composeAction = CardService.newAction()
      .setFunctionName('createReplyDraft');
  var composeButton = CardService.newTextButton()
      .setText('Compose Reply')
      .setComposeAction(
          composeAction,
          CardService.ComposedEmailType.REPLY_AS_DRAFT);

  // ...

  /**
   *  Creates a draft email (with an attachment and inline image)
   *  as a reply to an existing message.
   *  @param {Object} e An event object passed by the action.
   *  @return {ComposeActionResponse}
   */
  function createReplyDraft(e) {
    // Activate temporary Gmail scopes, in this case to allow
    // a reply to be drafted.
    var accessToken = e.gmail.accessToken;
    GmailApp.setCurrentMessageAccessToken(accessToken);

    // Creates a draft reply.
    var messageId = e.gmail.messageId;
    var message = GmailApp.getMessageById(messageId);
    var draft = message.createDraftReply('',
        {
            htmlBody: "Kitten! <img src='cid:kitten'/>",
            attachments: [
              UrlFetchApp.fetch('https://example.com/images/myDog.jpg')
                  .getBlob()
            ],
            inlineImages: {
              "kitten": UrlFetchApp.fetch('https://example.com/images/myKitten.jpg')
                           .getBlob()
            }
        }
    );

    // Return a built draft response. This causes Gmail to present a
    // compose window to the user, pre-filled with the content specified
    // above.
    return CardService.newComposeActionResponseBuilder()
        .setGmailDraft(draft).build();
  }