휴가 설정 관리

컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.

설정을 사용하여 계정의 예약된 자동 응답을 구성할 수 있습니다.

가져오기 또는 업데이트 방법에 대한 자세한 내용은 설정 참조를 확인하세요.

자동 응답 구성

자동 답장을 사용하려면 응답 제목 및 본문(HTML 또는 일반 텍스트)이 필요합니다. 무제한으로 사용 설정하거나 정의된 기간으로 제한할 수 있습니다. 알려진 연락처 또는 도메인 구성원으로 자동 답장을 제한할 수도 있습니다.

정해진 기간 동안 자동 답장을 설정하여 동일한 도메인의 사용자로 답장을 제한하는 예:

자바

gmail/snippets/src/main/java/EnableAutoReply.java
import com.google.api.client.googleapis.json.GoogleJsonError;
import com.google.api.client.googleapis.json.GoogleJsonResponseException;
import com.google.api.client.http.HttpRequestInitializer;
import com.google.api.client.http.javanet.NetHttpTransport;
import com.google.api.client.json.gson.GsonFactory;
import com.google.api.services.gmail.Gmail;
import com.google.api.services.gmail.GmailScopes;
import com.google.api.services.gmail.model.VacationSettings;
import com.google.auth.http.HttpCredentialsAdapter;
import com.google.auth.oauth2.GoogleCredentials;
import java.io.IOException;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.time.ZonedDateTime;

/* Class to demonstrate the use of Gmail Enable Auto Reply API*/
public class EnableAutoReply {
  /**
   * Enables the auto reply
   *
   * @return the reply message and response metadata.
   * @throws IOException - if service account credentials file not found.
   */
  public static VacationSettings autoReply() throws IOException {
        /* Load pre-authorized user credentials from the environment.
          TODO(developer) - See https://developers.google.com/identity for
           guides on implementing OAuth2 for your application. */
    GoogleCredentials credentials = GoogleCredentials.getApplicationDefault()
        .createScoped(GmailScopes.GMAIL_SETTINGS_BASIC);
    HttpRequestInitializer requestInitializer = new HttpCredentialsAdapter(credentials);

    // Create the gmail API client
    Gmail service = new Gmail.Builder(new NetHttpTransport(),
        GsonFactory.getDefaultInstance(),
        requestInitializer)
        .setApplicationName("Gmail samples")
        .build();

    try {
      // Enable auto reply by restricting domain with start time and end time
      VacationSettings vacationSettings = new VacationSettings()
          .setEnableAutoReply(true)
          .setResponseBodyHtml(
              "I am on vacation and will reply when I am back in the office. Thanks!")
          .setRestrictToDomain(true)
          .setStartTime(LocalDateTime.now()
              .toEpochSecond(ZoneOffset.from(ZonedDateTime.now())) * 1000)
          .setEndTime(LocalDateTime.now().plusDays(7)
              .toEpochSecond(ZoneOffset.from(ZonedDateTime.now())) * 1000);

      VacationSettings response = service.users().settings()
          .updateVacation("me", vacationSettings).execute();
      // Prints the auto-reply response body
      System.out.println("Enabled auto reply with message : " + response.getResponseBodyHtml());
      return response;
    } catch (GoogleJsonResponseException e) {
      // TODO(developer) - handle error appropriately
      GoogleJsonError error = e.getDetails();
      if (error.getCode() == 403) {
        System.err.println("Unable to enable auto reply: " + e.getDetails());
      } else {
        throw e;
      }
    }
    return null;
  }
}

Python

gmail/snippet/settingssnippet/enable_auto_reply.py
from __future__ import print_function

from datetime import datetime, timedelta

import google.auth
from googleapiclient.discovery import build
from googleapiclient.errors import HttpError
from numpy import long


def enable_auto_reply():
    """Enable auto reply.
    Returns:Draft object, including reply message and response meta data.

    Load pre-authorized user credentials from the environment.
    TODO(developer) - See https://developers.google.com/identity
    for guides on implementing OAuth2 for the application.
    """
    creds, _ = google.auth.default()

    try:
        # create gmail api client
        service = build('gmail', 'v1', credentials=creds)

        epoch = datetime.utcfromtimestamp(0)
        now = datetime.now()
        start_time = (now - epoch).total_seconds() * 1000
        end_time = (now + timedelta(days=7) - epoch).total_seconds() * 1000
        vacation_settings = {
            'enableAutoReply': True,
            'responseBodyHtml': "I am on vacation and will reply when I am "
                                "back in the office. Thanks!",
            'restrictToDomain': True,
            'startTime': long(start_time),
            'endTime': long(end_time)
        }

        # pylint: disable=E1101
        response = service.users().settings().updateVacation(
            userId='me', body=vacation_settings).execute()
        print(F'Enabled AutoReply with message: '
              F'{response.get("responseBodyHtml")}')

    except HttpError as error:
        print(F'An error occurred: {error}')
        response = None

    return response


if __name__ == '__main__':
    enable_auto_reply()

자동 답장을 사용 중지하려면 리소스를 업데이트하고 enableAutoReplyfalse로 설정합니다. endTime가 구성된 경우 지정된 시간이 지나면 자동 답장이 자동으로 중지됩니다.