E5 自动订阅程序[已开源]

未分类 admin 1年前 (2020-03-01) 65次浏览 0个评论
文章目录[隐藏]

由于我前端是废的,界面将就看看就行了,不影响程序~
申请office E5 开发者试用的教程
新版可续签的Office 365开发者试用订阅!E5(附自动续订的方法)
Onedrive容量 1T 修改 为5T,老帐号不删除重建

说明

  1. 此程序部署在我的服务器上,每隔2小时会自动调用outlook api 获取邮件列表
  2. 对于信息: 只会保存必要的 client_id、client_secret,其他任何内容都不会保存,
  3. 会读取授权的outlook账号邮箱邮件,但不会保存任何信息,仅仅是调用api。
  4. 请单独创建一个同域 E5 子账号进行授权,不要使用此账号进行发送、接收个人邮件,以免发生误会。

新手作代码辣鸡,估计会出现各种问题,所以还是不建议自己搭建。
https://github.com/luoye663/e5

 

使用教程

1、注册自己的api key

登录进入 azure  ,登录账号使用你的e5账户 ,就是以xxx.onmicrosoft.com开头的的账户。
搜索“应用注册”

点击 新注册

名称随意取一个,但是最重要的是 “重定向 URI (可选)”,请填写为下列地址,不然程序收不到回调。

https://e5.qyi.io/outlook/auth2/receive

2020-03-02 15:32
小伙伴们注意了,这里受支持的账户类型  重定向 URI (可选)一定要填对,不然无法授权的哦。

点击注册后记录以下信息
应用程序(客户端)ID
客户端密码
应用程序(客户端)ID:

创建客户端密码:


保存好以上2个key,一会需要用到。
配置api权限


勾选一下四个选项后,同时点击 代表XX授予管理员同意
PS: 这一步如果用的是子账号创建的api,那么这一项是灰色的,不能点击。需要登录 管理员 账号,再点击 代表XX授予管理员同意

这个时候api的配置就算完成了

2、添加key到自动订阅程序

进入 https://e5.qyi.io/
这里需要github账户登录,同样的,我只能获取你在 github中的 用户id、用户名等基础信息(邮箱获取不了),其他的任何信息也获取不到(可自行尝试注册一个github Apps测试)。

点击 [label]图标[/label] 登录后进入主页面

点击 新建 

名称随意输入,只是个标识而已
描述可空

点击 配置


填入上一步记录的 应用程序(客户端)ID、客户端密码  
client_id ->应用程序(客户端)ID
client_secret->客户端密码 

点击下一步进行配置调用时间,

  • 说明:单位 秒(最低调用频率为 60 秒,最高为6小时),例如: 30-60,代表在30秒-60秒之间随机调用一次

 
再点击下一步,到了 授权 ,

此时会跳转到 microsoftonline Auth2.0授权页面,在这里请注意使用同一个域下的空账号(子账号)进行授权。
(因为在这一步我能获取到授权的outlook账户 邮件,但是程序不会保存,仅仅是调用api。)以免在以后发生误会。

点击 接受 后,将会跳转回自动订阅程序。

到此时,授权就完成了。

3、下一步

已经没啦~
到这里你就可以不用管了,程序会每两个小时调用一次outlook的api。
界面写得辣鸡,因为我不会前端呀~大家将就看看就行了。
过几天我会把删除功能加上,可以删除在程序里注册的账户。
交流群:959720211

还是要说一下隐私安全问题

因为有几个读者也说到了,统一回答下

  1. api权限仅拥有 openid offline_access Mail.Read Mail.ReadWrite Mail.ReadBasic Mail.ReadBasic.ALL 这6个权限
  2. 也就是说我仅仅能读取授权账户的邮件,其他任何事都做不了,且我写的这个程序没有保存任何除key之外的信息
  3. 所以一开始我就说了,用子账户进行授权(空账户)及创建api,这样不涉及到 隐私及安全问题。
  4. 如果实在担心不想用了,azure 直接删掉api就可以了。

请喝杯咖啡吧

如果此项目对你有帮助,请喝杯咖啡吧~

从此项目自2020年3月上线以来,目前已有6500+个API应用在调用,到目前服务器费用大概花费1000+  ~~~~

4、FQA

Q: 日志是空的

A:  如果是新加入的账户,请等待系统自动调用。

Q: 参数错误

A: 如果 应用id 与 密钥 都没有错误的情况下,那么创建的时候看一下 “任何组织目录(任何Azure AD目录-多租户)中的帐户和个人Microsoft 帐户(例如,Skype、Xbox)” 有没有选这个

Q: 什么时候续期

A: 最后一个月中的任意一天会进行续期,目前是微软程序检测活跃情况,人工点击“一键续期”???

Q: REST API is not yet supported for this mailbox.

A:创建子账号的时候需要给outlook许可。

Q: 显示 此订阅处于非活动状态,将很快过期

A:这个提示是少于30天就会显示,并非根据活跃情况显示的。

Q: 过期了怎么办

A: 在过期后的2个月内订阅还是可以用的,所以可以在2个月内取回数据。如果在过期1个月都还没有续订的话,那么就可以开始转移数据了。

Q: 续期历史

2020-04-28 续期一次
2020-06-26 续期一次
貌似从 6月26日开始后,基本上每天都会检测订阅,难道现在不用 人工点击“一键续期”了?

5、注意问题

  1. 如果是在到期一个月调用,那么请用管理员账户登录,因为这个时候除了管理员能登录outlook以外,其他的子账户都不行!

6、关闭双重验证

群友发的

6、更新日志

2020-03-04:

  1. 加入调用时间显示,每日 0 点清空。

2020-04-17 11:12:

  1.  更新完成,加入随机调用时间
  2. 会读取邮箱前5封邮件

2020-04-21 01:04

  1. 由于消息队列没有配置好,导致无法正常随机调用api问题。(已修复)

2020-04-22 23:04

  1. 修复新注册的童鞋没有显示日志问题。
  2. 在调用时间范围内重复问题。

2020-08-19
维护中......
2020-08-23
已恢复
2020-12-20
增加同一账户多应用调用


如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:E5 自动订阅程序[已开源]
喜欢 (2)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(0)个小伙伴在吐槽
  1. 大佬,续订失效了,有办法恢复吗
    72602020-12-18 19:23 回复
    • 过期一个月还没续期就转移数据
      admin2020-12-19 18:20 回复
  2. 5/12第一次续订,8/10号第二次续订 目前读取邮件正常,但是第三次续订失败,12/9已经到期了 难道第三次之后的续订标准更严格了?
    Huang2020-12-18 12:06 回复
  3. 已过期10天,仍然没收到续期通知
    a2020-12-17 09:30 回复
  4. 感恩,感恩的♥,感谢有你。今天收到congratulations了,感恩博主,好人一生平安。ヾ(≧∇≦*)ゝ
    墙外5e2020-12-16 03:27 回复
  5. 凌晨4点成功续订,第二次成功了,来感谢博主 Congratulations! Your Microsoft 365 trial developer subscription has been renewed. Your new expiration date is 4/13/2021 (UTC). Note: Your Microsoft 365 subscription is for development purposes only. For more information, see the Microsoft 365 Developer Program FAQ. Visit your Microsoft 365 Developer Program dashboard to check your status and to find tools that add value to your subscription. Thank you! The Microsoft 365 Developer Program Team
    BJBZ2020-12-15 04:34 回复
  6. 自 2020 年 11 月 9 日起,最终用户将不再能够同意未经认证的发布者新注册的多租户应用。 是不是只能用管理员的账户进行调用api授权了啊,子账号授权不了,已配置授权列表一直显示的未授权(管理员已经同意过了)
    shier2020-12-10 18:39 回复
  7. 已经收到过期提示,现在续订程序是正常工作的,还能正常续上的不?
    jerry2020-12-10 14:28 回复
  8. 现在不能自动订阅了吗?还剩7天,这次没有续订
    OIIOZXX2020-12-09 21:59 回复
  9. 之前用大佬的续期,这次12月4号过期了,见还没续期,自己从新注册,步骤和教程一致,结果失败了,请问还有救么 授权结果 clientId 或 clientSecret 填写错误!授权失败!
    lastorder2020-12-07 23:06 回复
    • 你看看你复制的是不是密码的ID 而不是密码的值 我也在这迷瞪了好久
      sadcastle2020-12-17 10:27 回复
  10. 你好,请问下这个是要在快到期的时候在弄吗?
    Peter2020-12-06 21:16 回复
    • 尽量一直挂着吧
      admin2020-12-07 15:22 回复
      • 2020-12-07 14:45:18 1 ok 读取邮件数量:0 2020-12-07 13:30:43 1 ok 读取邮件数量:0 请问这样可以吗,还是要往子账号里发几封邮件。
        Peter2020-12-07 15:59 回复
        • 这样就可以了,发几封邮件也是可以的
          admin2020-12-07 16:04 回复
  11. 大佬,我想问一下您,就是我打开那个日志查询它就动不了,卡住了,然后就显示无响应,电脑手机都试过了,还是看不到,点不开
    独倾2020-12-05 22:13 回复
    • 可能是数据多了导致的,你再试一下呢
      admin2020-12-07 15:22 回复
  12. 无法刷新令牌!code:3REST API is not yet supported for this mailbox. 请问这是什么情况
    Martin Cao2020-12-05 11:48 回复
    • 给这个子账户outlook许可证。
      admin2020-12-07 15:22 回复
  13. Starting November 9th, 2020 end users will no longer be able to grant consent to newly registered multitenant apps without verified publishers. 添加 MPN ID 以验证发布者 这个新政策对于这个应用有影响吗?
    kyle2020-12-04 11:56 回复
    • 我暂时没有了解,不过因该是没有验证的apps只能在本域用,个人用户无法进行授权~
      admin2020-12-04 16:33 回复
  14. 我有个疑惑,请问用的是委派权限吗?我看官网的文档里,对于 Mail.ReadBasic.ALL 这个权限用的是应用程序权限,不是委派权限,如果用委派权限的话直接就被拒绝了,但是为什么看截图又有RedirectURL,而且MS的get参数是 code 和 state 。这不是委派权限的方式吗?
    王大锤2020-12-02 11:20 回复
    • 用的是“应用程序权限”(应用程序在用户未登录的情况下作为后台服务或守护程序运行。),Redirect URL这个是应用权限需要获取到的,code是微软返回拿access_token用的,state是我自己加的用来识别用户。如果用委托权限的话就不能后台跑了
      admin2020-12-02 16:41 回复
      • 我在您的代码仓库里面搜了一下关键字,您用的应该是委派权限,因为代码里面初次请求MS的登录接口用到了grant_type是 authorization_code,后续刷新access_token的时候用的grant_type是refresh_token,MS的Graph文档里描述为代表用户的访问权限,也就是委派类型的。如果是应用权限的话,一般grant_type是client_credentials,MS的Graph文档描述为无用户访问。您可以试一下,如果您把请求MS接口里面的scope的参数的mail.read改成mail.readbasic.all,MS就会拒绝下发access_token,因为委派权限不具有 .all 这个后缀的scope,我最开始是栽在这上面了(T_T)。不过两种没有太大的差别,只是我现在在疑惑,我究竟用委派权限,还是用应用权限更好。
        蜀山仙剑李逍遥2020-12-04 17:29 回复
        • 你看的是微软的哪一个文档呢? 我看的这个 https://docs.microsoft.com/zh-cn/graph/auth/auth-concepts#microsoft-graph-permissions
          • 委派权限与应用程序权限的区别就是 “委派权限应用的有效权限将为已(通过同意)向应用授予的委派权限和当前登录用户的特权之间的交集。 应用具有的特权不得比已登录用户的多”根据官方文档来比喻就是 假设创建两个api应用,两个api应用都有删除用户的权限,但登录授权的人只是普通用户,那么委派权限的应用也只能删除用户本身。但是应用权限能删除任何一个人,按道理说因该用委托权限比较好。
          • grant_type这个只是oauth获取token的一种方式吧,貌似与委派权限没关系? https://zhuanlan.zhihu.com/p/89717932
          • "如果把请求MS接口里面的scope的参数的mail.read改成mail.readbasic.all"这样肯定不行呀,因为我创建的时候选的就是应用权限,所以你那肯定会出错~
          admin2020-12-07 16:04 回复
          • 我看的是同样的文档,应该是我的理解有问题,您的解释是对的。但是,我现在担忧了,看到很多人说玄学E5的续订。唉。。我想拿来放电影的,万一翻车了就GG了。GD团队盘又不稳。
            蜀山仙剑李逍遥2020-12-09 14:28
  15. 我之前删除账号信息了,重新加入开发者变0天了,能续订吗
    V2020-12-01 15:13 回复
    • 哈哈,有点悬,不过群友续订成功过~
      admin2020-12-07 16:09 回复
      • 已经成功了
        V2020-12-07 16:17 回复
  16. 此订阅处于非活动状态且即将过期 hnaa@hainanjd.onmicrosoft.com 请利用免费试用订阅来开发适用于 Microsoft 365 的解决方案。 如果不开始使用此订阅进行开发,非管理员用户将于 2021年1月1日 失去访问权限。订阅将于 2021年1月20日 遭删除。 若要深入了解如何开发 Microsoft 365 解决方案,请参阅入门。
    hnaaa2020-12-01 08:42 回复
    • 2020-12-01 07:03:49 1 ok 读取邮件数量:5 2020-12-01 05:29:14 1 ok 读取邮件数量:5 2020-12-01 03:38:07 1 ok 读取邮件数量:5
      hnaaa2020-12-01 08:43 回复
      • 不用管,等续期就行了,到期后一个月没续期就转移数据吧~
        admin2020-12-07 15:31 回复
    • 5月6日和8月3日收到过续订成功的邮件,但是这次还没续订。
      hnaaa2020-12-01 08:48 回复
    • 不用管,如果到期后一个月还没有续期就准备转移数据吧
      admin2020-12-02 16:33 回复
  17. Congratulations! Your Microsoft 365 trial developer subscription has been renewed. Your new expiration date is 3/23/2021 (UTC). 非常感谢
    onemore2020-11-25 18:17 回复
  18. 填写正确,授权失败……
    Kinda2020-11-22 21:46 回复
  19. ID和密码都填写正确,但一直提示授权失败
    北纬2020-11-21 14:49 回复
    • 复制下显示授权失败的url~
      admin2020-11-22 00:41 回复
      • 重新注册了一次,可以了
        北纬2020-11-23 09:41 回复
  20. 今天收到邮件,续到3.21.2021了。 好耶~
    Wilyiam2020-11-21 11:01 回复
  21. 邮件发3次15号到期了,还没续订成功
    还差2020-11-17 19:56 回复
  22. 大佬,你有时间把续订程序更新一下吗?感觉只调用OutlookAPI微软会觉得可疑的,可能不给续的。
    火箭升空2020-11-17 17:47 回复
  23. 原始信息 该列不刷新消息数
    onemore2020-11-14 16:49 回复
    • 我在后台没有搜索到这条错误
      admin2020-11-15 19:39 回复
      • 显示读取邮件数量:5,但自2020年13月11日以来有3封新电子邮件 client_id 943e1377-15fc-49ce-a391-cc7e20a5bb98
        onemore2020-11-15 22:12 回复
        • ?13月?
          火箭升空2020-11-21 19:44 回复
          • 显示读取邮件数量:5,但自2020年11月13日以来有3封新电子邮件
            onemore2020-11-22 01:12
  24. 你好,我这边日志一直显示“OK”,之前也自动续订过两次,不过最近收到邮件了 请问有解决的方法吗?
    Juch2020-11-14 12:01 回复
    • 不用管,如果到删除前一个月还没有续期的话,就转移数据吧
      admin2020-11-15 19:39 回复
    • 我也收到无法续订的警告邮件了,12/31/2020过期,但是续订程序的日志里面写的是一直有在调用啊 大佬有什么解决方法吗
      Henrylin6662020-12-12 15:05 回复
  25. E3之前用这个续订了两次,现在看API调用日志还是正常的,但是还有十几天了,还没有续订,是有什么问题嘛?
    jordamol2020-11-10 11:31 回复
    • 我昨天收到的续订成功邮件,已经过期了,又活过来了😀
      清风2020-11-13 12:36 回复
  26. 大佬我想入群哈哈哈能同意一下吗
    EaveL2020-11-08 11:51 回复
  27. 呃。。。请问您一下,调用日志里显示error了,但是原始信息是一串问号,第二条记录有一句“??????!code:2,????: REST API is not yet supported for this mailbox.” 这是什么原因呢?
    Elapse2020-10-31 18:18 回复
    • 问号的问题后面我修复,你的这个错误是没有给子账户outlook许可
      admin2020-10-31 18:51 回复
      • 好的,我调试一下。非常感谢您的解答和您提供的订阅程序
        Elapse2020-10-31 19:23 回复
  28. 请问老大,你是把服务器迁到新加坡了吗?登陆需要人机验证,验证完了之后,显示“正在获取登陆地址,请稍后”,一直就这样卡住了。
    李寻欢2020-10-31 13:11 回复
    • 没有,套了cf,估计是ip原因吧,被cf验证了。
      admin2020-10-31 18:50 回复
  29. 老哥有了解Heroku么?考虑整合到Heroku?不过MySQL得自己准备
    Origin2020-10-30 14:12 回复
    • 看了下,没这个打算
      admin2020-10-31 02:15 回复
  30. 2020/10/29,服务器炸了??521错误
    ASStudioEFL2020-10-29 19:09 回复
  31. 请问提供的网页一直打不开是怎么弄啊,里里外外都试了还是打不开,求助,谢谢 显示:系统维护中,程序正常后台运行
    XXX2020-10-28 14:55 回复
  32. 請問一键续期在那按?
    des2020-10-24 11:55 回复
    • 就一比喻来的……比喻微软的续期方式……
      ASStudioEFL2020-10-26 21:29 回复
  33. 我是昨天来问没续期的那个~今天收到邮件续期成功,再次感谢站长~
    Wayne2020-10-24 09:55 回复
  34. 感谢大佬的分享,一直用这个成功续期了两次,昨天忽然收到邮件,说未注意到使用开发者进行开发,账户将过期=。= 这个是为什么呢~
    Wayne2020-10-23 09:02 回复
  35. 授权时提示 缺少参数
    zhang2020-10-22 19:03 回复
    • 重新授权一次,要么就是授权失败
      admin2020-10-23 08:56 回复
  36. 大佬 我之前使用一个子账号授权的,然后换成了用管理员账号登录,结果现在还剩20天了还没给续期,现在我又换回一开始的子账号登录还有用吗?而且我收件箱里也只有一封邮件,为啥调用日志显示读取了5封邮件啊?
    ..2020-10-21 19:35 回复
    • 你看看管理员账户里面的邮件有没有大于5封,最后一个月一般都会续期。
      admin2020-10-22 08:30 回复
      • 我的管理员账户里确实有很多邮件,但我前几天用子账号重新授权了。是没授权成功吗?就剩20天了微软还没给续期
        ..2020-10-23 19:41 回复
      • 是的 我管理员账户里面确实有很多邮件。但我后来重新用子账号授权过了。是没成功吗?微软现在还没给续期啊
        ..2020-10-25 16:50 回复
        • 等吧,过期了也还有2个月时间转移数据,一般来说都会续的,但是邮件没读取到这确实很奇怪,你的应用id是多少,我看一下。
          admin2020-10-25 22:56 回复
          • 我的id号是 d5127697-d156-468c-b108-48c943bb4e10 请大佬帮我看看,谢谢啊
            ..2020-10-26 18:33
  37. 大佬,我的显示9月7日过期,现在是10月19日我按照你的流程做了,还有救吗
    chinadrf2020-10-19 18:10 回复
    • 也许还能救回来
      admin2020-10-20 00:57 回复
      • 感谢大佬,我的E5自动又续订了44天。很奇怪为啥不是整月数。。。总之很感谢
        chinadrf2020-10-24 11:03 回复
  38. 子帐号需要有什么权限吗,需要许可证吗
    o2020-10-17 18:26 回复
    • 博客中的教程就是针对子账号
      admin2020-10-20 00:57 回复
  39. 大佬能不能写个云函数版本,单用户即可,也不用保存日志
    sikro2020-10-17 00:04 回复
  40. 注册不了github怎么办?
    135yy2020-10-16 21:27 回复
  41. 第一次续期成功了,感谢作者
    宇宙沙雕传媒2020-10-16 12:20 回复
  42. 大佬网站打开是个猫猫头怎么办 换了浏览器也不行 今天又试了 也fq了还是猫猫头
    墙外5e2020-10-15 11:07 回复
    • emm......点击一下猫头。
      admin2020-10-15 12:45 回复
      • ...................好了.............我还以为加载卡死了-。-
        墙外5e2020-10-15 15:56 回复
  43. 这个网站都打不开 https://e5.qyi.io/user/home
    墙外5e2020-10-15 00:10 回复
  44. 能否给个地址,在哪看还有多少天有效期,找不到位置了
    Q2020-10-13 19:20 回复
    • https://blog.curlc.com/archives/720.html
      admin2020-10-15 08:58 回复
  45. 120天继续,谢谢
    zy2020-10-13 13:46 回复
  46. 大佬,基础配置里面的内容好像没有了。
    李寻欢2020-10-12 23:24 回复
    • 有的,等一会吧,现在高峰期,出国比较卡。
      admin2020-10-12 23:51 回复
      • 已正常,多谢大佬。
        李寻欢2020-10-13 12:22 回复
  47. 是不是服务器炸了??一直正在获取登录地址。。。。
    eth02020-10-12 21:30 回复
  48. https://api.e5.qyi.io/auth2/getGithubUrl 大佬,这个链接挂了,麻烦修一修吧。
    APCI2020-10-12 17:41 回复
    • 已修复~
      admin2020-10-12 23:15 回复
      • 好像还是会有问题,点击授权,不会跳转到 microsoftonline Auth2.0授权页面,不懂是不是个例
        eth02020-10-12 23:48 回复
        • 换谷歌浏览器试一下,我这里测试没问题。
          admin2020-10-12 23:51 回复
          • 我已经更换了,好像是在点击保存的时候好像没弹出保存成功引起的?在下面时间调整那填写60-600,显示无权限
            eth02020-10-12 23:55
          • 重新登录一下试试,我改了下配置。https://e5.qyi.io/
            admin2020-10-13 00:03
          • 改配置后已经OK,包括谷歌浏览器的谷歌内核的edge都正常了,谢谢耐心回复
            eth02020-10-13 00:07
          • 哈哈,没事,我的锅,下午时候修复了点东西,没想到引起了其他方面问题~~~
            admin2020-10-13 00:15
          • 已经更换,发现大致原因是无法成功保存client_id 和secret ,至少没弹出提示保存成功,也许是因为这个引起的后面的授权?
            eth2020-10-13 00:02
  49. 120天续费成功了,谢!
    C2020-10-11 13:11 回复
  50. 我想问下dalao,新的账户大概时间用到多少天以后,会开始自动续期啊因为我现在已经是71/91了还没有自动续订
    ZHAN2020-10-10 17:29 回复
    • 最后一个月以内才会续期。
      admin2020-10-13 00:17 回复
1 8 9 10 11