说明

  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开头的的账户。
搜索“应用注册”

2021-03-15:

现在不能直接搜索到了,目前两种方法可以找到 应用注册

1)请搜索 “Azure Active Directory”,然后在 管理-应用注册 ,

E5 自动订阅程序

2)或者直接点击直达链接:

https://portal.azure.com/#blade/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/RegisteredApps

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

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

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

3)点击注册后记录以下信息:

1、应用程序(客户端)ID
2、客户端密码

应用程序(客户端)ID:
E5 自动订阅程序
创建客户端密码:
E5 自动订阅程序

2021-03-07 :

最近很多同学反应授权报错 Invalid client secret is provided.  这里请注意了,客户端密码请复制 “值”,不要复制 ID。

2021-08-19:

客户端密码这里已经没有了“从不”,只能选2年。

 

E5 自动订阅程序
保存好以上2个key,一会需要用到。
配置api权限
E5 自动订阅程序
E5 自动订阅程序
勾选一下四个选项后,同时点击 代表XX授予管理员同意
PS: 这一步如果用的是子账号创建的api,那么这一项是灰色的,不能点击。需要登录 管理员 账号,再点击 代表XX授予管理员同意
E5 自动订阅程序
这个时候api的配置就算完成了

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

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

点击

图标

登录后进入主页面

点击 新建 

名称随意输入,只是个标识而已
描述可空
E5 自动订阅程序

点击 配置

E5 自动订阅程序
填入上一步记录的 应用程序(客户端)ID、客户端密码  
client_id ->应用程序(客户端)ID
client_secret->客户端密码 
E5 自动订阅程序
点击下一步进行配置调用时间,
E5 自动订阅程序

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

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

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就可以了。

 

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、关闭双重验证

群友发的
E5 自动订阅程序