从 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 资源。

旧设置 新设置 备注
labelId id
标签 name
unreadCount messagesUnread
visibility labelListVisibility SHOW现为labelShow
现为HIDElabelHide

其他变更:

  • 更新或删除标签时,Gmail API 会按 ID 而不是按名称引用标签。

管理过滤条件

如需在 Gmail API 中管理过滤条件,请使用 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 中管理“发件人别名”,请使用 SendAs 资源。

旧设置 新设置
name displayName
地址 sendAsEmail
replyTo replyToAddress
makeDefault isDefault

管理网页剪辑

无法再通过 API 使用 Web 剪辑设置。

管理自动转发设置

如需在 Gmail API 中管理自动转发,请使用 Settings 资源。

旧设置 新设置 备注
启用 已启用
forwardTo emailAddress
action disposition KEEP 现为 leaveInInbox
ARCHIVE 现为 archive
DELETE 现为 trash
MARK_READ 现为 markRead

其他变更:

  • 转发地址必须先创建并验证,然后才能使用
  • 转发地址可以通过 ForwardingAddresses 资源进行管理。

管理 POP 设置

如需在 Gmail API 中管理 POP 访问权限,请使用 Settings 资源。

旧设置 新设置 备注
启用 accessWindow 设置为 disabled 时停用
enableFor accessWindow ALL_MAIL现为allMail
现为MAIL_FROM_NOW_ONfromNowOn
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 中管理电子邮件签名,请使用 SendAs 资源。

旧设置 新设置
签名 签名

其他变更:

  • 现在,签名是按别名管理的。

管理语言设置

如需在 Gmail API 中管理语言设置,请使用 Settings 资源。

旧设置 新设置
language displayLanguage

如需了解详情,请参阅管理语言设置指南

管理委托设置

如需在 Gmail API 中管理委托,请使用 Delegates 资源。

旧设置 新设置
地址 delegateEmail
状态 verificationStatus

其他变更:

  • 概要
    • 如需使用任何委托方法(包括 delegates.create),委托人用户必须已启用 Gmail。这意味着,例如,在中,委托人用户无法被暂停。
    • 电子邮件别名不能用作任何新方法的委托电子邮件输入。委托用户必须通过其主电子邮件地址进行引用。
  • delegates.create
    • 现在,此方法可用于在属于同一 组织的多个网域之间创建委托关系。
    • 此方法现在可用于需要在下次登录时更改密码的用户。
    • 如果成功,此方法将在响应正文中返回 Users.settings.delegates 资源,而不是空的响应正文。
    • 如果委托人或受托人用户被停用(例如,在 中被暂停),此方法会失败并显示 HTTP 4XX 错误,而不是 HTTP 500 错误。
  • delegates.delete
    • 此方法现在可用于删除具有任何 verificationStatus 的委托,而不仅仅是 acceptedexpired 的委托。
  • delegates.get
    • 这是一种新方法,根据需要,它可能比 delegates.list 方法更可取。

管理常规设置

无法再通过 API 使用常规设置。