Email Settings API에서 이전

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

요청 승인

Gmail API는 Email Settings 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

프로토콜 변경사항

Email Settings 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에서 라벨을 관리하려면 라벨 리소스를 사용하세요.

이전 설정 새 설정 참고
labelId id
라벨 이름
unreadCount messagesUnread
공개 상태 labelListVisibility SHOW가 이제 labelShow로 바뀌었습니다.
HIDE가 이제 labelHide로 바뀌었습니다.

기타 변경사항:

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

필터 관리

Gmail API에서 필터를 관리하려면 필터 리소스를 사용하세요.

이전 설정 새 설정 참고
출처: criteria.from
to criteria.to
제목 criteria.subject
hasTheWord criteria.query
doesNotHaveTheWord criteria.negatedQuery
hasAttachment criteria.hasAttachment
shouldArchive action.removeLabelIds INBOX을 라벨 ID로 사용합니다.
shouldMarkAsRead action.removeLabelIds UNREAD을 라벨 ID로 사용합니다.
shouldStar action.addLabelIds STARRED을 라벨 ID로 사용합니다.
라벨 action.addLabelIds 라벨의 ID를 사용하여 추가
forwardTo action.forward
shouldTrash action.addLabelIds TRASH을 라벨 ID로 사용합니다.
neverSpam action.removeLabelIds SPAM을 라벨 ID로 사용합니다.

기타 변경사항:

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

명의 도용 별칭 관리

Gmail API에서 발신자 표시 별칭을 관리하려면 SendAs 리소스를 사용하세요.

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

웹 클립 관리

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

자동 전달 설정 관리

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

이전 설정 새 설정 참고
사용 설정 사용 설정됨
forwardTo emailAddress
action disposition KEEP는 이제 leaveInInbox입니다.
ARCHIVE는 이제 archive입니다.
DELETE는 이제 trash입니다.
MARK_READ는 이제 markRead입니다.

기타 변경사항:

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

POP 설정 관리

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

이전 설정 새 설정 참고
사용 설정 accessWindow disabled로 설정하면 사용 중지됨
enableFor accessWindow ALL_MAIL가 이제 allMail로 바뀌었습니다.
MAIL_FROM_NOW_ON가 이제 fromNowOn로 바뀌었습니다.
action disposition KEEP는 이제 leaveInInbox
ARCHIVE는 이제 archive
DELETE는 이제 trash
MARK_READ는 이제 markRead로 변경되었습니다.

IMAP 설정 관리

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

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

부재중 자동 답장 설정 관리

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

이전 설정 새 설정
contactsOnly restrictToContacts
domainOnly restrictToDomain
사용 설정 enableAutoReply
endDate endTime
메시지 responseBodyHtml
responseBodyPlainText
startDate startTime
제목 responseSubject

서명 설정 관리

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

이전 설정 새 설정
서명 서명

기타 변경사항:

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

언어 설정 관리

Gmail API에서 언어 설정을 관리하려면 Settings 리소스를 사용하세요.

이전 설정 새 설정
language displayLanguage

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

위임 설정 관리

Gmail API에서 위임을 관리하려면 위임받은 사용자 리소스를 사용하세요.

이전 설정 새 설정
주소 delegateEmail
상태 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를 통해 일반 설정을 더 이상 사용할 수 없습니다.