本文为转载文章,已获得原作者授权。
- 原文:E5 自动订阅程序[已开源] - 浅忆博客
- 链接:https://qyi.io/archives/687.html
如果你还没有申请到E5账号,请访问这篇文章:Microsoft 365 E5开发者账号25T存储空间免费领取教程_异想之旅的博客-CSDN博客
以下为调整排版后的原文内容。
由于我前端是废的,界面将就看看就行了,不影响程序~
申请office E5 开发者试用的教程:
新版可续签的Office 365开发者试用订阅!E5(附自动续订的方法)
Onedrive容量 1T 修改 为5T,老帐号不删除重建
说明
- 此程序部署在我的服务器上,每隔2小时会自动调用outlook api 获取邮件列表
- 对于信息: 只会保存必要的 client_id、client_secret,其他任何内容都不会保存,
- 会读取授权的outlook账号邮箱邮件,但不会保存任何信息,仅仅是调用api。
- 请单独创建一个同域 E5 子账号进行授权,不要使用此账号进行发送、接收个人邮件,以免发生误会。
新手作代码辣鸡,估计会出现各种问题,所以还是不建议自己搭建。
项目地址:https://github.com/luoye663/e5
使用教程
一、注册自己的api key
登录进入 azure ,登录账号使用你的e5账户 ,就是以xxx.onmicrosoft.com开头的的账户。
点击直达链接:https://portal.azure.com/#blade/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/RegisteredApps
点击 新注册
名称随意取一个,但是最重要的是 “重定向 URI (可选)”,请填写为下列地址,不然程序收不到回调。
https://e5.qyi.io/outlook/auth2/receive
2020-03-02 15:32
小伙伴们注意了,这里受支持的账户类型 重定向 URI (可选)一定要填对,不然无法授权的哦。
(由于微软更新,页面可能略有不同,故重新截图,与原文有异处——转载注)
点击注册后记录以下信息:
- 应用程序(客户端)ID
- 客户端密码
应用程序(客户端)ID:
创建客户端密码:
客户端密码请复制 “值”,不要复制 ID。
2021-08-19:
有些教程让你选永久,然而客户端密码这里过期时间已经没有了“从不”,只能选2年。(别在意这些,谁也不知道2年后微软的策略会不会变,2年换一次密钥也不麻烦)
保存好以上2个key,一会需要用到。
二、配置api权限
看图操作
勾选一下四个选项后,同时点击 代表XX授予管理员同意
!!!这一步用的是子账号创建的api(也推荐使用子账号),那么这一项是灰色的,不能点击。需要点击右上角切换账号并登录 管理员 账号,再点击 代表XX授予管理员同意
这个时候api的配置就算完成了
三、添加key到自动订阅程序
进入 https://e5.qyi.io/
这里需要github账户登录,同样的,我只能获取你在 github中的 用户id、用户名等基础信息(邮箱获取不了),其他的任何信息也获取不到(可自行尝试注册一个github Apps测试)。
点击图标 登录后进入主页面
点击 新建:
- 名称随意输入,只是个标识而已
- 描述可空
创建好后点击 配置
填入上一步记录的 应用程序(客户端)ID、客户端密码
- client_id ->应用程序(客户端)ID
- client_secret->客户端密码
点击下一步进行配置调用时间,说明:单位 秒(最低调用频率为 60 秒,最高为6小时),例如: 30-60,代表在30秒-60秒之间随机调用一次
再点击下一步,到了 授权 ,
此时会跳转到 microsoftonline Auth2.0授权页面,在这里请注意使用同一个域下的空账号(子账号)进行授权。
(因为在这一步我能获取到授权的outlook账户 邮件,但是程序不会保存,仅仅是调用api。)以免在以后发生误会。
点击 接受 后,将会跳转回自动订阅程序。
到此时,授权就完成了。
完事了,已经没啦~
到这里你就可以不用管了,程序会每一段时间调用一次outlook的api。
界面写得辣鸡,因为我不会前端呀~大家将就看看就行了。
过几天我会把删除功能加上,可以删除在程序里注册的账户。
交流群:959720211
还是要说一下隐私安全问题,因为有几个读者也说到了,统一回答下
api权限仅拥有 openid offline_access Mail.Read Mail.ReadWrite Mail.ReadBasic Mail.ReadBasic.ALL 这6个权限
也就是说我仅仅能读取授权账户的邮件,其他任何事都做不了,且我写的这个程序没有保存任何除key之外的信息
所以一开始我就说了,用子账户进行授权(空账户)及创建api,这样不涉及到 隐私及安全问题。
如果实在担心不想用了,azure 直接删掉api就可以了。