Hotmail refresh_token怎么填IMAP?invalid_grant我按这个排

Hotmail refresh_token怎么填IMAP?invalid_grant我按这个排

a316558560
2026-10-09 / 0 评论 / 0 阅读 / 正在检测是否收录...

Hotmail refresh_token 怎么填进 IMAP,这个问题我上周又被问了一次。朋友卡密拆开了,邮箱、密码、client_id 都能对上号,唯独那一长串「令牌」粘进工具后,换票直接红字:invalid_grant。

我说句实在的:很多人把 refresh_token 当成 access_token 往 IMAP 里硬塞,或者整串卡密一起粘,结果微软那边根本不认。这篇就写 refresh_token 怎么用、IMAP/Graph 各填哪一段、invalid_grant 我怎么排,不重复「客户端字段怎么填」「IMAP 连不上」「账户锁定」那些旧坑。

refresh_token 和 access_token 到底谁进 IMAP?

我自己踩过一次:把卡密里的「令牌」直接当密码塞进 IMAP AUTHENTICATE,当然失败。

微软 OAuth2 这条链路其实是两步:

  1. 用 refresh_token + client_id 去换一张短命的 access_token;
  2. IMAP(XOAUTH2)或 Graph 再用这张 access_token 去读信。

所以:工具配置里通常填的是 refresh_token(卡密最后一段),真正连 IMAP 时用的是换出来的 access_token。 心蓝这类软件会帮你自动换票;自己写脚本的话,就要先打 token 端点,再拿 access_token 去组 XOAUTH2 字符串。

卡密格式商品页写得很清楚:邮箱----密码----client_id----令牌。四段用四个短横线隔开。我现在复制的习惯是:一段一段点开选中,别整行拖过去,少粘一个 - 或多带一个空格,后面全是玄学。

Hotmail令牌邮箱 refresh_token 在工具里填哪一格?

不同软件叫法不一样,我对照过几款常见的:

  • 心蓝 / 同类收信工具:一般有「OAuth2 / 令牌模式」开关。邮箱填第一段,client_id 填第三段,refresh_token / 刷新令牌 填第四段。密码那一格有的工具会灰掉,有的还要填第二段密码——以你软件界面为准,别两套都乱填;
  • 自己写脚本走 Graph:POST https://login.microsoftonline.com/consumers/oauth2/v2.0/token(个人 Hotmail/Outlook.com 常用 consumers 端点),body 里 grant_type=refresh_token,refresh_token= 卡密第四段,client_id= 第三段。回来的 JSON 里 access_token 才是读 /me/messages 用的;
  • IMAP XOAUTH2:先换出 access_token,再按 user=邮箱\x01auth=Bearer access_token\x01\x01 组 base64。别把 refresh_token 塞进 Bearer。

IMAP 和 Graph 两条路怎么选,我写过 微软邮箱IMAP和GRAPH怎么选怎么填。心蓝导入步骤可以对照 心蓝怎么导入Hotmail OAuth2令牌邮箱。

💡 小坑:有人把第四段令牌前面的 M.C、0.A 之类前缀当成杂质删掉。别删。那是令牌本身的一部分。

invalid_grant 报错,我先对这几条

换票失败最常见的英文就是 invalid_grant。它不是「IMAP 端口错了」,也不是「垃圾邮件文件夹没看」——那是连上之后的事。invalid_grant 卡在换票这一步。

我自己的对照清单:

① 粘错段 / 粘残了。
最常见。卡密一长串,浏览器复制时截断,或者把 client_id 和令牌粘反了。表现:换票立刻 invalid_grant,IMAP 根本轮不到报 AUTHENTICATE failed。我的做法:数一下四段是不是刚好四截,第四段长度通常很长,短得离谱就有问题。

② 把 access_token 当 refresh_token 再用。
有人调试时把换出来的 access_token 存下来,过一小时又拿去当 refresh_token 换——必挂。access_token 短命,过期了只能重新用 refresh_token 换,不能反过来。

③ 令牌已被撤销或账号侧失效。
微软账户改过密码、在 account.microsoft.com 里撤过应用权限、或者账号进了异常状态,旧的 refresh_token 会直接 invalid_grant。这种情况不是改客户端字段能修好的。账户锁定那条线我另写过 Outlook邮箱账户被锁定怎么解锁,今天不展开。

④ client_id 和令牌不是一对。
卡密是成套发出的。拿 A 号的 client_id 配 B 号的 refresh_token,微软不认。混号、拼号最容易出这个。

⑤ scope / 权限和用法不匹配。
商品页默认偏 IMAP;走 Graph 读邮件时,有时需要带上 User.Read Mail.Read offline_access 这类 scope。这点和「客户端里每个字段怎么填」相关,细字段对照见 Outlook OAuth2令牌客户端怎么填。本文只提醒:invalid_grant 有时是 grant 类型或权限对不上,别只盯着令牌字符串。

更宽的报错对照(含 Graph 401、IMAP 认证失败)在 Outlook OAuth2令牌报错怎么办;纯 IMAP 连不上见 Hotmail OAuth2 IMAP连不上。

换票成功了,IMAP 还是读不到信?

那已经不是 refresh_token 的问题了。

换票 JSON 里有了 access_token,说明第四段令牌是活的。后面如果 IMAP 认证失败,优先查:是不是仍在用旧的过期 access_token、XOAUTH2 字符串有没有组错、服务器是不是 outlook.office365.com。这些我在 127 里对过。

如果连上了、收件箱却空,记得去 Junk 翻一眼——那个坑我写在 Hotmail令牌邮箱收不到验证码。

我现在的 refresh_token 验收顺序

拿到新令牌号,我固定走这五步,五分钟能确认大半问题:

  1. 按 ---- 拆成四段,目测第四段完整、无首尾空格;
  2. 只用 client_id + refresh_token 换一次票,看有没有 access_token;
  3. 换票成功 → 再进心蓝或脚本连 IMAP / 调 Graph;
  4. 读收件箱最新一封,确认权限够;
  5. 自己给这个邮箱发一封测试,确认能落到可见文件夹。

令牌邮箱是什么、适不适合你,可以先看 Hotmail/Outlook令牌邮箱是什么;Hotmail 和 Outlook 两款令牌差在哪,看 Hotmail令牌号和Outlook令牌号有什么区别。

我现在手头常用的是店里的 Hotmail 微软邮箱(OAuth2 令牌,IMAP/GRAPH),Outlook 同款令牌也有 Outlook 微软邮箱(OAuth2 令牌)。价格和库存以商品页为准。选购对比有时我也会翻一下导购页 Hotmail邮箱购买,站里的教程和店里的 SKU 对得比较齐。

你要是换票日志里除了 invalid_grant 还有别的英文原文,打码后丢评论区,我帮你看是粘贴问题还是令牌本身失效。

0

评论 (0)

取消