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

未分类 admin 1年前 (2020-03-01) 76次浏览 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. 大佬 麻烦问一下怎么才能知道是否续订成功了?我在开发人员页面显示的时间每天都在减少,是到期之后才刷新时间还是每天都刷新?
    风小羽2020-03-05 11:13 回复
    • 续订成功都有邮件提示,只有到期时间小于30天才会开始续期。
      admin2020-03-05 11:15 回复
  2. 大佬牛逼,按照大佬的教程一次性搞定!
    Kidrox2020-03-05 11:00 回复
  3. 大佬 搞个key过期提醒吗?这样失败了也会知道。
    Mr.Lin2020-03-05 08:01 回复
    • token一般不会过期,我这里是用refresh_token刷新,除非是修改了api的配置~
      admin2020-03-05 09:00 回复
  4. 这个管理员账号都是小号,所以也无所谓了,就用管理员账号授权的,看到日志了,也是才用了几天,还有很久才会激活,希望大佬可以一直维持下去。
    笑侃浮生2020-03-04 13:40 回复
  5. 看到调用时间心理踏实了 :mrgreen: 虽然还有60多天才到期,提前登陆保持活跃 :mrgreen: 谢谢博主提供的软件 :wink:
    zj2020-03-04 13:34 回复
  6. 已上车 感谢楼主!!
    坏鱼炒年糕2020-03-04 12:24 回复
  7. 我能看到调用时间了,感谢大佬
    drrick2020-03-04 12:01 回复
  8. CompactToken validation failed with reason code: 80049228.求助 这是什么原因
    云知道2020-03-04 11:00 回复
  9. 大哥 你的github页面打不开了 请修复
    1232020-03-04 08:39 回复
  10. 好像又报502了 :cry:
    无聊的小疯子2020-03-04 08:25 回复
    • 正在升级~稍后~
      admin2020-03-04 08:29 回复
      • 能不能写个云函数的,自己配置调用
        blowsnow2020-03-04 10:38 回复
        • 不好意思,暂时没时间弄呢,后面有时间我弄一个。
          admin2020-03-04 10:49 回复
  11. 已经搞好了,就是看不到调用时间。
    Potato2020-03-03 23:06 回复
  12. 大佬 调用时间不更新的吗
    lrp2020-03-03 15:53 回复
  13. 能不能写个使用云函数的,自己配置调用
    blowsnow2020-03-03 12:20 回复
  14. 不报错就是正常运行吧?我看界面没变过一直就两次那个调用时间
    ykp2020-03-03 12:12 回复
  15. 大佬牛逼,已经用上了
    ccjjhhwwdd2020-03-03 11:00 回复
  16. 保存成功后点授权就跳这个,大佬,这个要怎么解决?{"code":500,"msg":"value == null","data":null}
    cspkvs2020-03-03 08:19 回复
    • 看一下这条评论,类型有木有选对~ https://blog.curlc.com/archives/687.html#comment-390
      admin2020-03-03 08:45 回复
      • 重新注册调整了组织类型后就成功了,大佬牛逼
        cspkvs2020-03-03 09:25 回复
        • 无法刷新令牌怎么办呀
          yuyu2020-03-05 20:58 回复
          • 原始错误提示是什么呢?
            admin2020-03-05 21:32
  17. 大佬什么时候把日志修好。 这个要调用多久才能续期,目前还没有收到邮件。 另外我的申请时间比较早,还是 E3 开发者版试用,能使用这个续期吗?
    sjf2020-03-03 07:43 回复
    • e3好像不行吧,只有3个月有效期,我也不太确定。我上次调用3天才续期,前提是有效期低于30天。 日志我尽快弄。
      admin2020-03-03 08:44 回复
  18. 授权到不是自己的网站总感觉不安全
    啊啊啊2020-03-02 23:51 回复
    • 不放心可以自己按照教程用postman手动调用。https://docs.microsoft.com/zh-cn/outlook/rest/
      admin2020-03-03 08:43 回复
  19. 怎么自己搞个github Apps?
    啊啊啊2020-03-02 23:25 回复
    • https://github.com/settings/developers
      admin2020-03-03 08:42 回复
  20. 可以的 成功授权 感谢大佬
    huaxia2020-03-02 21:55 回复
  21. 感谢大佬,辛苦了,成功授权了
    xiuku2020-03-02 18:14 回复
  22. 虽然我已经自己调用 api 续订了,但是还是得说博主nb!
    moreant2020-03-02 17:36 回复
    • 请问你调用了outlook吗
      24964146122020-03-03 11:52 回复
      • 我按照官方文档拼接 Uri 调用了 OutLook 的 API ,比如获取邮件和发送邮件啥的。https://docs.microsoft.com/zh-cn/previous-versions/office/office-365-api/api/version-2.0/use-outlook-rest-api
        moreant2020-03-04 11:59 回复
  23. 一次就成了,感谢
    drrick2020-03-02 16:23 回复
  24. 为什么跟其他人一样这个报错...
    Forevercontinent2020-03-02 15:29 回复
    • 看了一下评论,已经解决
      Forevercontinent2020-03-02 16:32 回复
  25. 报错啦 {"code":500,"msg":"value == null","data":null}
    lunsit2020-03-02 15:11 回复
  26. 授权失败! 错误: 未知错误,请联系管理员~
    花鑫2020-03-02 13:29 回复
    • 这个一般是 client_id、client_secret 填写错误导致的
      admin2020-03-02 15:04 回复
  27. 博主最后一步显示这个{"code":500,"msg":"value == null","data":null}是因为什么啊
    wexy2020-03-02 13:14 回复
  28. emm保存不上点击授权也没有反应_(:з」∠)_是我网的问题吗
    lp2020-03-02 13:06 回复
    • 是不是禁用js了~~~
      admin2020-03-02 13:07 回复
      • 是万恶的移动宽带 我换了电信就保存上了但是 报错{"code":500,"msg":"\n### Error updating database.
        lp2020-03-02 13:11 回复
        • 已修复,再试一次~
          admin2020-03-02 13:17 回复
          • Thanks♪(・ω・)ノ已经好使了
            lp2020-03-02 13:19
  29. 感谢大佬!
    工藤新22020-03-02 13:03 回复
  30. 谢谢博主大佬!我在想过后大佬要不要用rand时间,不然以后都是两小时的过后被微软看到会不会被提高一些新的门槛了
    dawnli2020-03-02 11:57 回复
    • ojbk,后面我加上随机时间~
      admin2020-03-02 12:17 回复
  31. 大佬,怎样调用多个账户的api
    zy2020-03-02 11:40 回复
    • emm......暂时木有多key的功能,后期添加上,目前只能多注册几个github账户登录了......
      admin2020-03-02 11:53 回复
  32. 楼主辛苦了,我自己也找了个demo调用。
    potato19492020-03-02 11:15 回复
  33. 卧槽,大佬牛逼
    三寸舌2020-03-02 10:33 回复
  34. 楼主楼主,请问保活需要调用API的时间是多久鸭,我现在每2小时调用一次API已经三天了,还是没有续期,是因为我刚刚开通,还剩八十多天的缘故嘛,是要等到少于一个月才会续期嘛 :cry:
    Ray2020-03-02 10:13 回复
    • 那你还早呀,确实要少于一个月才会续期。
      admin2020-03-02 10:15 回复
      • 那我现在还要疯狂调用嘛,还是等到少于一个月再调用 :mrgreen:
        Ray2020-03-02 10:19 回复
        • 你就挂在我的这个程序上就可以了,2小时调用一次,这个频率已经超级低了。真正用这个api的公司/个人,并发量都很大的。
          admin2020-03-02 10:21 回复
  35. 请问下大佬,这个网页以后会开源吗,想把它部署到自己的服务器(同一ip疯狂部署不会被banIp吗),这样稳一点。
    樱花の风誓2020-03-02 09:45 回复
    • 暂时没看见文档说访问频率多少,auth一般都是限制key访问频率,目前我这个是2小时一次,完全没问题。至于开源嘛,如果没问题以后会开的~
      admin2020-03-02 09:58 回复
      • 顺便无痕窗口添加报错 {"code":500,"msg":"nested exception is org.apache.ibatis.exceptions.TooManyResultsException: Expected one result (or null) to be returned by selectOne(), but found: 2","data":null}
        樱花の风誓2020-03-02 10:21 回复
        • make,是因为未知bug导致添加了两次key,回去一起修复~
          admin2020-03-02 10:34 回复
  36. 博主,进入Azure那里是用管理员账号还是我新建的账号?
    YHX2020-03-02 09:31 回复
    • 尽量用自己子账号,然后用管理员账户授权就可以啦~
      admin2020-03-02 09:41 回复
      • 博主,为什么我点“授权”之后微软的网站就一直在刷新,我点了账号也没用,过了一会儿又显示“无法登录”呀?
        YHX2020-03-02 10:43 回复
        • 可能是网络问题,国内访问微软都不咋样,不行就科学上网吧。
          admin2020-03-02 10:45 回复
          • 博主,我试了一下,如果用管理员账号就可以正常授权,但是如果用子账号就会要你填更多信息,点击跳过之后它就开始一直刷新了。
            YHX2020-03-02 11:21
          • 能不能录一个视频我看一下是啥问题。
            admin2020-03-02 11:25
          • 博主,视频上传到了 https://www.lanzous.com/xxxxx 因为网盘原因,所以压缩了一下。我还想问一下就是可以直接用管理员账号授权吗?反正我也不用那个账号收发邮件~
            YHX2020-03-02 11:43
          • 可以直接使用管理员账号,视频我看了(链接帮你删了),这个是你设置了安全策略导致的~
            admin2020-03-02 12:22
          • 好的,感谢博主大大!那这个安全策略要怎么关闭呀?
            YHX2020-03-02 12:28
          • 微软的分类太多了,我也没找到。你看看这里面有没有你的账户 https://aad.portal.azure.com/#blade/Microsoft_AAD_IAM/RiskyUsersBlade ,用管理员账户看。 https://aad.portal.azure.com/#allservices 这个链接是管理安全的。
            admin2020-03-02 13:05
          • 非常感谢博主大大,我添加手机号就可以了,谢谢!
            YHX2020-03-02 15:44
  37. 最后一步,点击授权出现 {"code":500,"msg":"value == null","data":null}
    Aaron2020-03-02 09:24 回复
    • 看了下日志,奇怪的错误,主要是因为api返回的状态码不对,先记录下,等一起修复......你再试一下,两个参数一定要填对啊~
      admin2020-03-02 09:40 回复
    • 我用子号也出现这个问题,直接用管理员账号可以了
      hm7732020-03-02 09:57 回复
      • 我好像也出现了这个问题,不过用管理员账号好像也没有成功
        Alex_22222222020-03-02 12:19 回复
        • 找到错误原因:登录Azure - 应用注册,新注册的时候,名称随意取一个之后,在下面能看到【受支持的账户类型】 应当把账户类型选择最后一个任何组织目录。我之前是因为忽略了这个,现在已经成功授权了
          Aaron2020-03-02 14:58 回复
          • 我也是同样的错误,用你说的办法,改了权限就能用了。多谢!
            amdzk2020-04-02 15:20
  38. 最后一步,添加填入上一步记录的 应用程序(客户端)ID、客户端密码 client_id ->应用程序(客户端)ID client_secret->客户端密码 这里错误。
    小人物2020-03-02 08:56 回复
  39. 感谢教程!但是好像网页报错了 :???: ,没法添加id和key
    hm7732020-03-02 08:41 回复
  40. 博主,我登录https://e5.qyi.io/user/home这个网址的时候,有FreeMarker template error。没办法登录授权
    dawnli2020-03-02 08:39 回复
  41. https://e5.qyi.io/user/home登陆上去已经出现FreeMarker template error
    无聊的小疯子2020-03-02 08:28 回复
  42. 打开来报错,Edge和Firefox都试过了。FreeMarker template error (DEBUG mode; use RETHROW in production!):The following has evaluated to null or missing:==> client_id [in template
    sjf2020-03-02 08:18 回复
  43. 报错了。。不能添加了
    Mr.Lin2020-03-02 08:07 回复
  44. 大佬牛逼
    24964146122020-03-02 06:53 回复
  45. 貌似挂了?
    风中人2020-03-02 02:32 回复
  46. 辛苦了,谢谢! :wink: :grin:
    zj2020-03-02 01:26 回复
  47. 代表管理员同意那里是灰的 是需要给这个账号管理员权限吗
    ykp2020-03-02 01:26 回复
    • 不用给这个账户管理员权限,但是可能需要你登录管理员的账户,然后进入 应用注册 里面给授权一下,明天我试试用子账号创建api。
      admin2020-03-02 01:28 回复
      • 试了试需要登录管理员在同样界面给予同意就行了 博主的这个https://e5.qyi.io/user/home现在是还在维护不能用是吧 辛苦博主了~
        ykp2020-03-02 01:34 回复
        • 可以访问的呀,因为套了cf,可能个别地方访问特别慢。
          admin2020-03-02 01:37 回复
          • 网站报错来着 FreeMarker template error (DEBUG mode; use RETHROW in production!):The following has evaluated to null or missing:==> client_id [in template
            Kingvin2020-03-02 01:55
          • 我都错 :cry: ,已修复~
            admin2020-03-02 08:59
      • 这个现在只能用主账号创建API,还没法用子账号吧?
        firewire2020-03-02 09:04 回复
        • 可以用子账号创建,但是需要登录管理员账户点击 授权(也是在 应用注册 这里)。
          admin2020-03-02 09:06 回复
          • 搞定子账号了。像博主说的,先用子账号创建,之后主账号授权就行了。万分感谢!
            firewire2020-03-02 09:39
  48. 站长辛苦!
    居桉2020-03-02 01:17 回复
    • 2020-03-04 13:05:29,失败,更新数据库时发现有重复的key。请问这是哪里操作不当造成? {"code":500,"msg":"nested exception is org.apache.ibatis.exceptions.TooManyResultsException: Expected one result (or null) to be returned by selectOne(), but found: 3","data":null}
      yo2020-03-04 21:05 回复
      • 你的日志时间是多少,我看一下
        admin2020-03-05 08:59 回复
        • 2020-03-04 13:05:29,谢谢
          yo2020-03-05 14:01 回复
        • 刚刚看了日志,部分成功,部分失败。 2020-03-05 11:03:05 失败 更新数据库时发现有重复的key 2020-03-05 11:02:44 失败 更新数据库时发现有重复的key 2020-03-05 09:03:02 失败 更新数据库时发现有重复的key 2020-03-05 09:02:40 失败 更新数据库时发现有重复的key 2020-03-05 09:02:40 失败 更新数据库时发现有重复的key
          yo2020-03-05 14:04 回复
          • 中午的时候我也发现了,等一会你再看看会不会出现这个错误。
            admin2020-03-05 14:24
          • 2020-03-05 19:02:38 失败 无法刷新令牌!code:2 2020-03-05 18:01:10 成功 ok 2020-03-05 17:02:36 成功 ok 2020-03-05 16:01:22 成功 ok 2020-03-05 15:04:18 成功 ok 2020-03-05 14:01:19 成功 ok 2020-03-05 13:02:45 成功 ok 2020-03-05 12:01:13 成功 ok 本以为成功了,结果19:02又一次新报错。谢谢大佬
            yo2020-03-05 19:26
          • 我研究下,晚点修复~
            admin2020-03-05 21:31
  49. 首评?
    我若为王2020-03-02 01:09 回复
  50. 熬夜党的胜利哎,感谢站长,给力哦,辛苦了
    FancyHornby2020-03-02 01:08 回复
1 2 3 11