이 문서는 지원이 중단된 이메일 설정 API에서 Gmail API로 앱을 이전하는 데 도움이 됩니다.
요청 승인
이메일 설정 API와 마찬가지로 Gmail API는 OAuth 2.0 프로토콜을 사용하여 요청을 승인합니다. 한 가지 중요한 차이점은 Gmail API 권한이 전체 도메인이 아닌 개별 사용자에게 범위가 지정된다는 것입니다. 즉, 도메인 관리자 계정을 승인해도 도메인의 다른 사용자의 메일을 이전할 수는 없습니다. 대신 Google 관리 콘솔의 허용 목록에 추가된 도메인 전체 권한이 있는 표준 서비스 계정을 사용하여 적절한 인증 토큰을 생성해야 합니다.
이메일 설정 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 리소스를 사용하세요.
| 이전 설정 | 새 설정 | 참고 |
|---|---|---|
| labelId | id | |
| 라벨 | 이름 | |
| unreadCount | messagesUnread | |
| 공개 상태 | labelListVisibility | SHOW가 이제 labelShow로 바뀌었습니다. HIDE가 이제 labelHide로 바뀌었습니다. |
기타 변경사항:
- 라벨을 업데이트하거나 삭제할 때 Gmail API는 이름 대신 ID로 라벨을 참조합니다.
필터 관리
Gmail API에서 필터를 관리하려면 settings.filters 리소스를 사용하세요.
| 이전 설정 | 새 설정 | 참고 |
|---|---|---|
| 소스: | criteria.from | |
| -> | 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에서 다른 주소로 보내기 별칭을 관리하려면 settings.sendAs 리소스를 사용하세요.
| 이전 설정 | 새 설정 |
|---|---|
| 이름 | displayName |
| 주소 | sendAsEmail |
| replyTo | replyToAddress |
| makeDefault | isDefault |
웹 클립 관리
Gmail API에서는 웹 클립 설정을 사용할 수 없습니다.
자동 전달 관리
Gmail API에서 자동 전달을 관리하려면 settings 리소스를 사용합니다.
| 이전 설정 | 새 설정 | 참고 |
|---|---|---|
| 사용 설정 | 사용 설정됨 | |
| forwardTo | emailAddress | |
| action | disposition | KEEP가 이제 leaveInInbox로 변경되었습니다.ARCHIVE가 이제 archive로 변경되었습니다.DELETE가 이제 trash로 변경되었습니다.MARK_READ가 이제 markRead로 변경되었습니다. |
기타 변경사항:
- 전달 주소는 사용하기 전에 만들어 확인해야 합니다.
- 전달 주소는
settings.forwardingAddresses리소스를 사용하여 관리할 수 있습니다.
POP 설정 관리
Gmail API에서 POP 액세스를 관리하려면 settings 리소스를 사용합니다.
| 이전 설정 | 새 설정 | 참고 |
|---|---|---|
| 사용 설정 | 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 액세스를 관리하려면 settings 리소스를 사용하세요.
| 이전 설정 | 새 설정 |
|---|---|
| 사용 설정 | 사용 설정됨 |
휴가 자동 답장 설정 관리
Gmail API에서 부재중 자동응답을 관리하려면 settings 리소스를 사용하세요.
| 이전 설정 | 새 설정 |
|---|---|
| contactsOnly | restrictToContacts |
| domainOnly | restrictToDomain |
| 사용 설정 | enableAutoReply |
| endDate | endTime |
| 메시지 | responseBodyHtml responseBodyPlainText |
| startDate | startTime |
| 제목 | responseSubject |
서명 설정 관리
Gmail API에서 이메일 서명을 관리하려면 settings.sendAs 리소스를 사용하세요.
| 이전 설정 | 새 설정 |
|---|---|
| 서명 | 서명 |
기타 변경사항:
- 이제 서명이 별칭별로 관리됩니다.
언어 설정 관리
Gmail API에서 언어 설정을 관리하려면 settings 리소스를 사용하세요.
| 이전 설정 | 새 설정 |
|---|---|
| language | displayLanguage |
자세한 내용은 언어 설정 관리를 참고하세요.
위임 설정 관리
Gmail API에서 위임을 관리하려면 settings.delegates 리소스를 사용합니다.
| 이전 설정 | 새 설정 |
|---|---|
| 주소 | delegateEmail |
| 상태 | verificationStatus |
기타 변경사항:
- 일반
- 위임 방법 (
settings.delegates.create포함)을 사용하려면 위임자 사용자가 Gmail을 사용 설정해야 합니다. 즉, 위임자 사용자는 Google Workspace에서 정지될 수 없습니다. - 이메일 별칭은 새 메서드의 위임 이메일 입력으로 사용할 수 없습니다. 위임된 사용자는 기본 이메일 주소로 참조해야 합니다.
- 위임 방법 (
settings.delegates.create- 이제 이 방법을 사용하여 동일한 Google Workspace 조직에 속한 여러 도메인 간에 위임 관계를 만들 수 있습니다.
- 이제 이 메서드를 사용하여 다음 로그인 시 비밀번호 변경이 필요한 사용자를 처리할 수 있습니다.
- 이 메서드는 요청에 성공하면 빈 응답 본문이 아닌 응답 본문에서
settings.delegates리소스를 반환합니다. - 위임자 또는 위임받은 사용자 중 한 명이 사용 중지된 경우 (예: Google Workspace에서 정지됨) 이 메서드는 HTTP 500 오류 대신 HTTP 4XX 오류와 함께 실패합니다.
settings.delegates.delete- 이제 이 메서드를 사용하여
accepted또는expired인 대리인뿐만 아니라 모든VerificationStatus이 있는 대리인을 삭제할 수 있습니다.
- 이제 이 메서드를 사용하여
settings.delegates.get- 이는 새로운 메서드로, 필요에 따라
settings.delegates.list메서드보다 선호될 수 있습니다.
- 이는 새로운 메서드로, 필요에 따라
일반 설정 관리
Gmail API에서는 일반 설정을 사용할 수 없습니다.