Email Settings API에서 이전

이 문서에서는 Email Settings API와 Gmail API의 주요 차이점을 설명합니다. 이 가이드를 사용하여 앱을 Gmail API로 이전할 수 있습니다.

요청 승인

Email Settings API와 마찬가지로 Gmail API는 OAuth 2.0 프로토콜을 사용하여 요청을 승인합니다. 한 가지 주요 차이점은 Gmail API 권한의 범위가 전체 도메인이 아닌 개별 사용자로 지정된다는 점입니다. 즉, 도메인 관리자 계정을 승인해도 도메인 내 다른 사용자의 메일을 마이그레이션할 수 없습니다. 대신 관리 콘솔에서 허용 목록에 포함된 도메인 전체 권한이 있는 표준 서비스 계정을 사용하여 적절한 인증 토큰을 생성해야 합니다.

Email Settings API에서 다음 범위를 사용했습니다.

https://apps-apis.google.com/a/feeds/emailsettings/2.0/

Gmail API에서 이에 상응하는 범위는 다음과 같습니다.

https://www.googleapis.com/auth/gmail.settings.basic
https://www.googleapis.com/auth/gmail.settings.sharing

프로토콜 변경사항

이메일 설정 API는 XML 기반 GDATA 프로토콜을 사용합니다. Gmail API는 JSON을 사용합니다. 설정은 대부분 키-값 쌍으로 구성되므로 페이로드는 버전 간에 개념적으로 유사합니다.

라벨 만들기의 예:

Email Settings API

POST https://apps-apis.google.com/a/feeds/emailsettings/2.0/{domain name}/{username}/label
<?xml version="1.0" encoding="utf-8"?>
<atom:entry xmlns:atom="http://www.w3.org/2005/Atom" xmlns:apps="http://schemas.google.com/apps/2006">
  <apps:property name="label" value="status updates" />
</atom:entry>

Gmail API

POST https://www.googleapis.com/gmail/v1/users/{username}/labels
{
   "name": "status updates"
}

프로토콜을 직접 구현하는 대신 제공된 클라이언트 라이브러리를 사용하세요.

라벨 관리

Gmail API에서 라벨을 관리하려면 Labels 리소스를 사용합니다.

이전 설정 새 설정 Notes
labelId id
라벨 이름
unreadCount messagesUnread
공개 상태 labelListVisibility SHOW는 이제 labelShow
HIDE은 이제 labelHide입니다.

기타 변경사항:

  • 라벨을 업데이트하거나 삭제할 때 Gmail API는 이름 대신 ID를 기준으로 라벨을 참조합니다.

필터 관리

Gmail API에서 필터를 관리하려면 필터 리소스를 사용합니다.

이전 설정 새 설정 Notes
from criteria.from
to criteria.to
subject criteria.subject
hasTheWord criteria.query
doesNotHaveTheWord criteria.negatedQuery
hasAttachment criteria.hasAttachment
shouldArchive action.removeLabelIds 라벨 ID로 INBOX 사용
shouldMarkAsRead action.removeLabelIds 라벨 ID로 UNREAD 사용
shouldStar action.addLabelIds 라벨 ID로 STARRED 사용
라벨 action.addLabelIds 추가할 라벨의 ID를 사용합니다.
forwardTo action.forward
shouldTrash action.addLabelIds 라벨 ID로 TRASH 사용
neverSpam action.removeLabelIds 라벨 ID로 SPAM 사용

기타 변경사항:

  • 사용자 라벨 추가가 아직 없는 경우 labels.create 메서드를 사용하여 명시적으로 만들어야 합니다.

보내기 별칭 관리

Gmail API에서 보내기 별칭을 관리하려면 SendAs 리소스를 사용합니다.

이전 설정 새 설정
이름 displayName
주소 sendAsEmail
replyTo replyToAddress
makeDefault isDefault

웹 클립 관리

웹 클립 설정은 더 이상 API를 통해 사용할 수 없습니다.

자동 전달 설정 관리

Gmail API에서 자동 전달을 관리하려면 설정 리소스를 사용합니다.

이전 설정 새 설정 Notes
enable 사용 설정됨
forwardTo emailAddress
작업 disposition KEEP는 이제 leaveInInbox
ARCHIVE는 이제 archive
DELETE는 이제 trash
MARK_READ는 이제 markRead입니다.

기타 변경사항:

  • 전달 주소는 사용하기 전에 만들고 확인해야 합니다.
  • 전달 주소는 ForwardingAddresses 리소스를 통해 관리할 수 있습니다.

POP 설정 관리

Gmail API에서 POP 액세스를 관리하려면 설정 리소스를 사용합니다.

이전 설정 새 설정 Notes
enable accessWindow disabled로 설정하면 사용 중지됨
enableFor accessWindow ALL_MAIL는 이제 allMail
MAIL_FROM_NOW_ON은 이제 fromNowOn입니다.
작업 disposition KEEP는 이제 leaveInInbox
ARCHIVE는 이제 archive
DELETE는 이제 trash
MARK_READ는 이제 markRead입니다.

IMAP 설정 관리

Gmail API에서 IMAP 액세스를 관리하려면 설정 리소스를 사용합니다.

이전 설정 새 설정
enable 사용 설정됨

부재중 자동 답장 설정 관리

Gmail API에서 부재중 자동 답장을 관리하려면 설정 리소스를 사용합니다.

이전 설정 새 설정
contactsOnly restrictToContacts
domainOnly restrictToDomain
enable enableAutoReply
endDate endTime
메시지 ResponseBodyHTML
responseBodyPlainText
startDate startTime
subject responseSubject

서명 설정 관리

Gmail API에서 이메일 서명을 관리하려면 SendAs 리소스를 사용합니다.

이전 설정 새 설정
서명 서명

기타 변경사항:

  • 이제 서명이 별칭별로 관리됩니다.

언어 설정 관리

Gmail API에서 언어 설정을 관리하려면 설정 리소스를 사용합니다.

이전 설정 새 설정
language displayLanguage

자세한 내용은 언어 설정 관리 가이드를 참조하세요.

위임 설정 관리

Gmail API에서 위임을 관리하려면 위임 리소스를 사용합니다.

이전 설정 새 설정
주소 delegateEmail
status verificationStatus

기타 변경사항:

  • 일반
    • 위임 방법(delegates.create 포함)을 사용하려면 Gmail에서 위임자 사용자가 사용 설정되어 있어야 합니다. 즉, 예를 들어 위임자 사용자는Google Workspace에서 정지될 수 있습니다.
    • 이메일 별칭은 새 메서드에 대한 위임 이메일 입력으로 사용할 수 없습니다. 위임 사용자는 기본 이메일 주소로 추천되어야 합니다.
  • delegates.create
    • 이제 이 메서드를 사용하여 동일한 조직에 속한 여러 도메인에 Google Workspace대리인 관계를 만들 수 있습니다.
    • 이제 다음 로그인 시 비밀번호를 변경해야 하는 사용자에게 이 방법을 사용할 수 있습니다.
    • 요청이 성공하면 이 메서드는 응답 본문에서 빈 응답 본문이 아닌 Users.settings.Delegates 리소스를 반환합니다.
    • 위임자 또는 위임 사용자 중 하나가 사용 중지되면 (예: Google Workspace에서 정지됨) 이 메서드는 HTTP 500 오류 대신 HTTP 4XX 오류와 함께 실패합니다.
  • delegates.delete
    • 이 메서드는 이제 accepted 또는 expired인 대리자뿐만 아니라 모든 verificationStatus를 포함하는 대리자를 삭제하는 데 사용할 수 있습니다.
  • delegates.get
    • 새로운 메서드로, 필요에 따라 delegates.list 메서드보다 더 유용할 수 있습니다.

일반 설정 관리

일반 설정은 더 이상 API를 통해 사용할 수 없습니다.