Aqua Mail 数据 API:文件夹、许可与推送
Aqua Mail 是 Aqua Mail Inc 推出的多账户安卓邮件客户端,把 Gmail、Outlook/Office 365、Yahoo、Yandex 以及通用 IMAP 或 Exchange 邮箱汇入一个快速、安全的收件箱;免费、Premium 与 Pro 三档方案让它长期受到需要同时管理多个账户的用户青睐。
作为数据源,该应用开放了这些界面背后的对象:已登录账户为注册的 deviceID 返回 userId 与 authToken,权益记录携带 accountType 与 subscriptions,邮件文件夹带 displayName 与 unreadItemCount,邮件以 isRead 与 internetMessageId 标记,另有外出自动回复设置与标记为 is_live 的分文件夹推送订阅。开发者基于这些字段构建许可感知的功能开关、未读邮件看板、引导自动配置与新邮件通知工具。
Aqua Mail 是 Aqua Mail Inc 推出的多账户安卓邮件客户端,把 Gmail、Outlook/Office 365、Yahoo、Yandex 以及通用 IMAP 或 Exchange 账户统一进一个快速、安全的收件箱,并提供免费、Premium 与 Pro 三档方案。账户列表、收件箱与升级界面背后是一套数据:账户资料与设备身份、许可权益与 Play 购买凭证、带未读数的邮件文件夹树、邮件列表、收件箱规则、外出自动回复设置与推送订阅状态。配套应用、数据看板与引导工具无需抓取界面即可集成这些数据。
应用截图
API 端点一览
以下端点与请求/响应示例均依据应用界面推导重构,为示意说明,并非实际抓包。
Aqua 账户登录
POST
/v2/accounts/signinosint用绑定 deviceID 的 Google、Apple 或 Facebook 凭证登录 Aqua Mail 账户,返回后续许可与资料调用使用的 userId 与 authToken。
认证方式: 无需认证的 JSON POST。请求体为 login 对象,包含社交提供方 ID(google_id、apple_id 或 facebook_id)与 deviceID,可选加密请求信封。返回的 authToken 会附加到后续账户调用。
- login
- google_id
- apple_id
- facebook_id
- deviceID
- fetch_user_fields
- userId
- authToken
- name
- avatar
POST /v2/accounts/signin HTTP/1.1 Content-Type: application/json { "login": { "google_id": "118304928176102938475", "deviceID": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", "fetch_user_fields": [] } }{ "userId": "usr_7f3a91c2", "authToken": "aqm_live_9f2c1e8b4d6a", "name": "Alex Rivera", "email": "[email protected]", "avatar": "https://cdn.example.net/avatars/usr_7f3a91c2.png" }依据应用的账户登录流程重建与邮箱设置前显示的社交登录表单一致
Aqua 用户资料
POST
/v2/accounts/profileosint读取已登录 Aqua Mail 账户卡片——显示名、邮箱与头像——用于许可与账户界面。
认证方式: 已登录的 Aqua 会话。携带 profile 对象的 JSON POST;登录返回的 authToken 随请求信封一起发送。
- profile
- fields
- name
- avatar
POST /v2/accounts/profile HTTP/1.1 Content-Type: application/json { "profile": { "fields": "name email avatar" } }{ "name": "Alex Rivera", "email": "[email protected]", "avatar": "https://cdn.example.net/avatars/usr_7f3a91c2.png" }依据许可与账户界面上的账户卡片重建
创建设备 ID
POST
/v2/devices/registeropendata生成后续每次登录、许可与登出调用都携带的 deviceID,并记录平台与手机型号。
认证方式: 首次运行设备注册时的 JSON POST,无需认证。
- create
- platform
- model
- deviceID
POST /v2/devices/register HTTP/1.1 Content-Type: application/json { "create": { "platform": "android", "model": "Pixel 8" } }{ "deviceID": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", "platform": "android", "model": "Pixel 8" }依据首次运行的设备注册流程重建
检查设备登录状态
POST
/v2/devices/sessionopendata查询该设备是否仍持有有效的 Aqua Mail 会话;若有效则返回新的 authToken,否则返回要求重新登录的 errorCode。
认证方式: JSON POST,login_state 下携带社交凭证与 deviceID,用于免完整登录恢复会话。
- login_state
- google_id
- deviceID
- isLoggedIn
- authToken
- errorCode
POST /v2/devices/session HTTP/1.1 Content-Type: application/json { "login_state": { "google_id": "118304928176102938475", "deviceID": "a1b2c3d4-e5f6-7890-abcd-ef1234567890" } }{ "isLoggedIn": true, "authToken": "aqm_live_9f2c1e8b4d6a", "errorCode": 0 }依据应用启动时的会话恢复检查重建
检查设备产品许可
POST
/v2/billing/entitlementsopenfinance返回设备的 Aqua Mail 权益——free、premium 或 pro——以及 Play 订阅 SKU;许可失效时可强制登出。
认证方式: 已登录的 Aqua 会话(登录返回的 authToken)。携带空 check_device_license 对象的 JSON POST。
- check_device_license
- accountType
- subscriptions
- isForceLogout
POST /v2/billing/entitlements HTTP/1.1 Content-Type: application/json { "check_device_license": {} }{ "accountType": "premium", "subscriptions": ["pro_plus_yearly", "unlocker_permanent"], "isForceLogout": false }依据 Premium 界面的权益刷新重建
校验 Play 购买凭证
POST
/v2/billing/receipts/verifyopenfinance把 Google Play 购买 JSON 发送到 Aqua Mail 计费服务,由服务器确认凭证并把 accountType 切换为付费方案。
认证方式: 已登录的 Aqua 会话。JSON POST,把 Play Billing 购买 JSON 包在 validate-receipt 下。
- validate-receipt
- orderId
- packageName
- productId
- purchaseToken
- purchaseState
- accountType
- subscriptions
POST /v2/billing/receipts/verify HTTP/1.1 Content-Type: application/json { "validate-receipt": { "orderId": "GPA.1234-5678-9012-34567", "packageName": "org.kman.AquaMail", "productId": "pro_plus_yearly", "purchaseToken": "opaque-play-token", "purchaseState": 0 } }{ "accountType": "pro", "subscriptions": ["pro_plus_yearly"], "valid": true }依据 Play Billing 升级后的购买完成流程重建
检查已有 Play 购买
POST
/v2/billing/orders/statusopenfinance询问许可云端已有 Play 订单是否仍然有效,使恢复购买与静默权益检查无需新凭证即可刷新 accountType。
认证方式: 已登录的 Aqua 会话。携带 purchase-status 令牌的 JSON POST,供服务器报告此前 Play 订单是否仍有权益。
- purchase-status
- accountType
- subscriptions
- isForceLogout
POST /v2/billing/orders/status HTTP/1.1 Content-Type: application/json { "purchase-status": "GPA.1234-5678-9012-34567" }{ "accountType": "pro", "subscriptions": ["pro_plus_yearly"], "isForceLogout": false }依据恢复购买流程重建
Office 邮件文件夹树
GET
/mail/v3/foldersopendata列出已登录 Microsoft 365 / Outlook 邮箱的文件夹(含隐藏文件夹),即 Office 账户设置完成后填充 Aqua Mail 文件夹面板的数据。
认证方式: Authorization: Bearer <OAuth2 access token>,来自 Office/Hotmail 登录重定向。
- value
- id
- displayName
- parentFolderId
- childFolderCount
- unreadItemCount
- totalItemCount
- isHidden
- includeHiddenFolders
GET /mail/v3/folders?includeHiddenFolders=true HTTP/1.1 Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik...{ "value": [ { "id": "AAMkAGI2TG93AAA=", "displayName": "Inbox", "parentFolderId": "AAMkAGI2AAAA", "childFolderCount": 3, "unreadItemCount": 12, "totalItemCount": 1840, "isHidden": false } ] }依据 Office 账户设置完成后出现的文件夹面板重建
Office 子文件夹
GET
/mail/v3/folders/{id}/childrenopendata把父邮件文件夹展开为其子文件夹,使收件箱、归档与自定义文件夹下的嵌套树能在双栏界面中渲染。
认证方式: Authorization: Bearer <OAuth2 access token>。
- value
- id
- displayName
- parentFolderId
- unreadItemCount
- totalItemCount
GET /mail/v3/folders/AAMkAGI2TG93AAA=/children HTTP/1.1 Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik...{ "value": [ { "id": "AAMkAGI2TG93AAB=", "displayName": "Receipts", "parentFolderId": "AAMkAGI2TG93AAA=", "unreadItemCount": 2, "totalItemCount": 56 } ] }依据双栏界面中的嵌套文件夹展开重建
Office 文件夹邮件
GET
/mail/v3/folders/{id}/messagesopendata分页返回邮件文件夹内的邮件——即 Aqua Mail 为 Office 365 账户展示的收件箱列表,包含已读状态与 internetMessageId。
认证方式: Authorization: Bearer <OAuth2 access token>。
- value
- id
- subject
- internetMessageId
- isRead
- receivedDateTime
- hasAttachments
- conversationId
- from
GET /mail/v3/folders/AAMkAGI2TG93AAA=/messages?$top=50&$select=id,subject,internetMessageId,isRead,receivedDateTime,from,hasAttachments HTTP/1.1 Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik...{ "value": [ { "id": "AAMkAGI2AAAoAAA=", "subject": "Q3 close checklist", "internetMessageId": "<[email protected]>", "isRead": false, "receivedDateTime": "2026-09-27T14:22:08Z", "hasAttachments": true, "conversationId": "AAQkAGI2CgBQAAA=", "from": { "emailAddress": {"name": "Jordan Lee", "address": "[email protected]"} } } ] }依据 Office 365 账户显示的邮件列表重建
收件箱邮件规则
GET
/mail/v3/folders/inbox/rulesopendata读取 Outlook 收件箱规则,使 Aqua Mail 能为 Office 账户展示并编辑服务器端过滤器。
认证方式: Authorization: Bearer <OAuth2 access token>。
- value
- id
- displayName
- sequence
- isEnabled
- conditions
- actions
- senderContains
- moveToFolder
- markAsRead
GET /mail/v3/folders/inbox/rules HTTP/1.1 Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik...{ "value": [ { "id": "AQMkAGI2AABhAAAA", "displayName": "File receipts", "sequence": 1, "isEnabled": true, "conditions": {"senderContains": ["[email protected]"]}, "actions": {"moveToFolder": "AAMkAGI2TG93AAB=", "markAsRead": true} } ] }依据服务器端过滤器编辑器重建
自动回复(外出)
GET
/mail/v3/settings/autoreplyopendata加载 Outlook 外出横幅,供 Aqua Mail 的外出自动回复读取与设置界面显示和编辑。
认证方式: Authorization: Bearer <OAuth2 access token>。对同一资源发起 PATCH 可更新 automaticRepliesSetting。
- automaticRepliesSetting
- status
- externalAudience
- internalReplyMessage
- externalReplyMessage
- scheduledStartDateTime
- scheduledEndDateTime
GET /mail/v3/settings/autoreply HTTP/1.1 Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik...{ "automaticRepliesSetting": { "status": "scheduled", "externalAudience": "all", "internalReplyMessage": "I am out of office until Monday.", "externalReplyMessage": "Please contact [email protected].", "scheduledStartDateTime": {"dateTime": "2026-09-26T17:00:00", "timeZone": "Pacific Standard Time"}, "scheduledEndDateTime": {"dateTime": "2026-09-29T08:00:00", "timeZone": "Pacific Standard Time"} } }依据外出自动回复的读取与设置界面重建
注册推送设备
POST
/push/v1/devicesopendata把该手机注册到 Aqua Mail 的推送代理,使 Exchange/Office 的新邮件通知可经 FCM 投递。
认证方式: JSON POST。请求体包含 push_token 与 push_tech;auth 与 nonce 是基于已注册设备身份的 HMAC 签名。
- push_token
- push_tech
- nonce
- auth
- result
POST /push/v1/devices HTTP/1.1 Content-Type: application/json; charset=UTF-8 { "push_token": "fcm-c3d4e5f6", "push_tech": "fcm", "nonce": "a8f3c1", "auth": "7b2e9c1d0a44" }{ "result": "ok", "device_id": "dev_91ab33" }依据 Exchange 与 Office 账户的新邮件通知设置重建
变更推送文件夹订阅
POST
/push/v1/subscriptionsopendata创建或删除按文件夹的推送订阅(收件箱、已发送、自定义),使 Aqua Mail 只为用户实际同步的邮箱唤醒。
认证方式: JSON POST,携带基于已注册设备的 HMAC auth/nonce。create/delete 数组给出 Exchange 文件夹 ID。
- create
- delete
- f_id
- sub_id
- ts
- is_live
- is_dead
- subs
- result
- nonce
- auth
POST /push/v1/subscriptions HTTP/1.1 Content-Type: application/json; charset=UTF-8 { "create": [{"f_id": "AAMkAGI2TG93AAA=", "sub_id": "sub_inbox_1"}], "nonce": "a8f3c1", "auth": "7b2e9c1d0a44" }{ "result": "ok", "subs": [ {"f_id": "AAMkAGI2TG93AAA=", "sub_id": "sub_inbox_1", "ts": 1727539200, "is_live": 1} ] }依据按文件夹的同步开关重建
列出推送订阅
POST
/push/v1/subscriptions/listopendata返回推送代理上当前生效的文件夹订阅集合,使客户端在变更订阅前对账本地同步状态。
认证方式: JSON POST,携带基于已注册设备的 HMAC auth/nonce。
- nonce
- auth
- result
- subs
- f_id
- sub_id
- ts
- is_live
POST /push/v1/subscriptions/list HTTP/1.1 Content-Type: application/json; charset=UTF-8 { "nonce": "a8f3c1", "auth": "7b2e9c1d0a44" }{ "result": "ok", "subs": [ {"f_id": "AAMkAGI2TG93AAA=", "sub_id": "sub_inbox_1", "ts": 1727539200, "is_live": 1} ] }依据订阅变更前运行的同步状态对账重建
MX 主机查询
GET
/setup/v1/mx/{domain}osint在账户设置期间解析邮箱域名的邮件交换主机名,使 Aqua Mail 能自动填写 IMAP/SMTP 或 Exchange 主机。
认证方式: 静态共享 Authorization 头,原样发送。用于账户设置期间本地 DNS MX 查询为空或过慢时。
- HostList
- Host
- Priority
GET /setup/v1/mx/example.com HTTP/1.1 Authorization: <static shared token>{ "HostList": [ {"Host": "aspmx.l.google.com", "Priority": 1}, {"Host": "alt1.aspmx.l.google.com", "Priority": 5} ] }依据账户设置的服务器自动填写重建
Yahoo OAuth 令牌
POST
/oauth/v2/tokenosint兑换或刷新 Yahoo Mail 的 OAuth2 令牌,使 Aqua Mail 在应用内 Yahoo 登录后通过 XOAUTH2 经 IMAP 打开 Yahoo 邮箱。
认证方式: OAuth2 authorization_code 或 refresh_token 授权。Yahoo 邮箱令牌存于安卓账户管理器,用于 IMAP XOAUTH2。
- client_id
- scope
- refresh_token
- grant_type
- access_token
- expires_in
- token_type
POST /oauth/v2/token HTTP/1.1 Content-Type: application/x-www-form-urlencoded client_id=dj0yJmk9ZXhhbXBsZQ&scope=mail-r&refresh_token=AAh.xz1&grant_type=refresh_token{ "access_token": "djE8b2Fr...", "refresh_token": "AAh.xz1", "expires_in": 3600, "token_type": "bearer" }依据 Yahoo 登录与邮箱登录流程重建
Exchange 自动发现
POST
/setup/v1/exchange-settingsopendata在账户设置期间为企业邮箱发现 Exchange Web Services URL,使 Aqua Mail 无需手动填写 EWS 主机即可订阅推送并同步文件夹。
认证方式: 使用 Exchange 邮箱凭证的 HTTP Basic 或 NTLM。SOAP Autodiscover 2006 请求架构。
- EMailAddress
- AcceptableResponseSchema
- EwsUrl
- Server
- AccountType
POST /setup/v1/exchange-settings HTTP/1.1 Content-Type: text/xml Authorization: Basic YWxpY2U6c2VjcmV0 <?xml version="1.0" encoding="utf-8" ?> <Autodiscover xmlns="http://schemas.microsoft.com/exchange/autodiscover/outlook/requestschema/2006"> <Request> <EMailAddress>[email protected]</EMailAddress> <AcceptableResponseSchema>http://schemas.microsoft.com/exchange/autodiscover/outlook/responseschema/2006a</AcceptableResponseSchema> </Request> </Autodiscover>{ "EMailAddress": "[email protected]", "EwsUrl": "https://mail.example.net/EWS/Exchange.asmx", "Server": "mail.example.net", "AccountType": "email" }依据 Exchange 账户设置流程重建
数据类别
- 账户资料
- 设备身份
- 产品许可
- Play 购买
- 邮件文件夹
- 邮件消息
- 收件箱规则
- 外出自动回复
- 推送订阅
- MX 主机
- OAuth 令牌
- Exchange 自动发现
数据使用场景与案例
许可感知的功能开关
配套工具可用空的 check_device_license 对象调用权益检查,读取 accountType 与 subscriptions,仅当 Aqua Mail 云端确认设备已获授权时才启用 Pro 过滤器、额外账户或备份到 Drive 等功能。
Office 邮箱盘点
用户通过 Microsoft OAuth 登录后,文件夹树、子文件夹与文件夹邮件三个调用即可产出文件夹的 displayName、unreadItemCount 以及每封邮件的 internetMessageId 与 isRead,足以搭建未读邮件看板而无需抓取界面。
新邮件推送对账
运维可将本地同步状态与订阅列表、订阅变更调用对比:每个订阅都带 f_id、sub_id、ts 与 is_live,因此失效的 Exchange 文件夹订阅可在通知中断前重建。
从 MX 记录自动发现
引导阶段,MX 查询调用返回含 Host 与 Priority 的 HostList,当设备上的 DNS 受限时设置向导可跳过手动填写 IMAP 主机;Exchange 邮箱随后通过自动发现请求获取 EwsUrl。
常见问题
Aqua Mail 如何区分自身账户与各个邮箱的认证?
Aqua Mail 云端账户采用社交登录(google_id、apple_id 或 facebook_id 加 deviceID),返回 authToken。每个邮箱单独认证:Office 365 使用登录重定向返回的 OAuth2 Bearer 令牌,Yahoo 使用 OAuth2 令牌兑换,IMAP 或 Exchange 账户使用邮件服务器自身的凭证。许可与计费调用使用 Aqua 的 authToken,而非邮箱令牌。
哪些数据涉及邮箱内容?
对 Microsoft 365 / Outlook,文件夹树与子文件夹调用返回文件夹层级(displayName、unreadItemCount、totalItemCount),文件夹邮件调用分页返回带 internetMessageId、isRead 与 subject 的邮件,收件箱规则调用列出服务器端过滤器及其条件与动作。IMAP 与 Exchange 账户直接与用户自己的邮件主机通信,而非 Aqua 账户云。
Pro 与 Premium 许可如何校验?
Play Billing 购买凭证会上送服务器校验,权益检查随后返回 accountType(free、premium 或 pro)、包含 SKU 的 subscriptions 数组,以及权益失效时的 isForceLogout 标记。已有订单可凭 GPA 订单号重新核查,因此恢复购买无需新凭证。
推送 API 的作用是什么?
Exchange 与 Office 账户用 push_token 与 push_tech 注册手机,然后按文件夹创建或删除订阅(f_id、sub_id、is_live),并可列出订阅进行状态对账。Aqua Mail 借此在不保持常驻 IMAP 连接的情况下投递新邮件通知。
与 Email Aqua Mail - Fast, Secure 相似的应用
- K-9 Mail / Thunderbird for Android — 免费开源的安卓邮件客户端,支持 IMAP/POP3、多账户、OpenPGP 加密和统一收件箱,目前正在 Mozilla 旗下更名为 Thunderbird 安卓版。
- FairEmail — 开源、注重隐私的安卓邮件客户端,提供无限账户、统一收件箱、PGP 与 S/MIME 加密和离线使用,且无跟踪。
- Microsoft Outlook — 微软的跨平台邮件应用,支持 Exchange 和 Microsoft 365,内置日历与联系人整合以及统一收件箱。
- BlueMail — 免费邮件应用,可在统一收件箱中管理无限账户,提供智能推送通知和以联系人为中心的视图,覆盖安卓、iOS、Windows、Mac 和 Linux。
- Spark Mail — 免费增值的邮件客户端,具备智能收件箱、AI 辅助写作、定时发送与稍后处理功能,并支持跨安卓、iOS、Mac 和 Windows 的团队协作。
- Canary Mail — 带有 AI Copilot 的邮件客户端,可辅助撰写和总结邮件,支持可选的 PGP 端到端加密、已读回执和跨移动端与桌面端的统一收件箱。
- Proton Mail — 来自瑞士的隐私导向邮件服务,其安卓应用提供端到端及零访问加密,并内置加密日历。
- Nine — 面向商务用户的安卓邮件应用,以 Exchange 为核心,通过 Direct Push 同步邮件、日历、联系人、任务和便签。
相关主题
- Aqua Mail API
- Aqua Mail 数据
- Aqua Mail 许可 API
- Office 365 邮件文件夹 API
- Aqua Mail 推送通知
- 邮箱 MX 查询
- 邮件客户端数据 API
需要集成这个 App 的数据 API?
我们可为任意指定 App 交付定制集成——源码交付 USD 500 起,或托管 API 按调用计费。告诉我们您需要的数据即可。
- 每个项目均签 NDA 与 SOW
- 3–7 天交付
- 验收通过后才付款
- 仅在授权范围内作业