微软365开发人员E5计划域名邮箱
前言
一开始只是申请试试E5计划,后成功后转移域名邮箱阵地。记录下遇到的困难以及解决办法。
1.申请E5账号
- 进入开发者中心,点击立即加入,登录微软帐号之后填写相关信息即可。点击加入后会回到主页。
- 点击设置订阅,选择国家地区(onedrive数据位置),填写域、用户名和密码,后面使用用户名@域.onmicrosoft.com进行登陆。
- 之后需要手机号,国内手机号即可,但需要通过谷歌验证。备好科学工具。(注:这里我在验证时无法通过,明明已经是国际互连环境,但仍然没有弹出谷歌验证。随通过一些地址提供的工具完成认证,该地址仍需科学工具。地址)
至此应该已经申请成功E5计划,有效期92天,25个许可。E5计划可以让子账户拥有1T OneDrive,免费的 office 365 体验。
2.邮箱域账号设置
- 进入365管理界面,设置->域。点击添加域,可选择自己添加DNS信息,或者授权让微软自动添加。
- 添加用户,在用户->活跃用户中添加用户,用户名的域选择自己的域名即可。之后就可以自主登录outlook接发邮件了。
问题:该域名邮箱设置自动转发无效,被规则拦截。可以向该地址发邮件,但设置自动转发失败。后找到解决方案。方案地址:为Microsoft Office 365 自定义域开启邮件DKIM和外部转发设置
这里做记录一下:
打开计算机上的Powershell
安装Exchange Online Module X2,进行此步之前确保电脑已经全局连接国际互联网,否则因为网络波动可能会出现不知名的错误。(只开系统代理没用的,Powershell不走代理)
输入
Set-ExecutionPolicy RemoteSigned
Install-Module -Name ExchangeOnlineManagement
连接Exchange Online
输入导入模块。
Import-Module ExchangeOnlineManagement
使用UPN登录Exchange Online
Connect-ExchangeOnline -UserPrincipalName <UPN>
把
替换为Exchange管理员或者全局管理员的登陆邮箱地址,如admin@contoso.onmicrosoft.com) 弹出登录框后输入密码和2FA(if any),然后会自动下载命令。
如果是世纪互联,命令有变化
Connect-ExchangeOnline -Credential $UserCredential -ExchangeEnvironmentName O365China
其他操作一样,登陆进去后也会自动下载命令。
查看启用DKIM所需要的两条CNAME记录值
New-DkimSigningConfig -DomainName <domain> -Enabled $false
请把
换成你绑定到全局的,并且准备启用DKIM签名的域名。比如a1.contoso.com 回车后输入
Get-DkimSigningConfig -Identity <domain> | Format-List Selector1CNAME, Selector2CNAME
同样要替换domain。(我用的是世纪互联,后缀就是onmschina.cn)
如果是国际版,应该长这样。
Host name: selector1._domainkey Points to address or value: selector1-<domainGUID>._domainkey.<initialDomain> TTL: 3600 Host name: selector2._domainkey Points to address or value: selector2-<domainGUID>._domainkey.<initialDomain> TTL: 3600
去你的域名DNS解析上,添加这两条CNAME记录。如果是Cloudflare,切记关闭云朵。.
退出Powershell,关闭窗口,等待约10分钟后,重复步骤1 2重新登陆。
开启DKIM
Set-DkimSigningConfig -Identity <domain> -Enabled $true
仍然是记得替换domain。
检查是否开启。
使用工作或学校帐户登录 Microsoft 365。
选择左上角的应用启动器图标,然后选择“管理员”。
在左下侧导航中,展开“管理”并选择“Exchange”。(选旧版管理界面)
依次转到” 保护”>” dkim”。
选择你开启DKIM的域名,点开,应该显示已启用DKIM。
打开外部邮件转发设置。
有时候Office 365设置邮件自动转发到域外邮箱可能会被系统拒绝,这时我们要手动开启邮件外部转发。
重复步骤1-2 登录Exchange Online。
查看默认反垃圾邮件策略
Get-HostedOutboundSpamFilterPolicy
如果图上标注的地方(指AutoForwardingMode)是On 你不必接着做下去了。
如果是Automatic或者Off,接着走。
开启组织自定义设置
微软为了安全起见,默认不允许组织随意更改设置,需要先开启自定义设置。
输入
Enable-OrganizationCustomization
确保连上了国际互联网,真全局代理。等待一会,进度条跑完后就可以开启Auto forwarding了。
开启外部邮件转发设置
Set-HostedOutboundSpamFilterPolicy -Identity "Default" -AutoForwardingMode On
之后的结果应该是AutoForwardingMode为On,至此,已经完全配置好。
DMARC配置
SPF由于你在绑定域名的时候微软已经帮你配置好了,不再写SPF配置。DMARC很简单,去你域名的DNS管理里面,增一条TXT记录名称为_dmarc.
。记录值为如v=DMARC1; p=none; 类似的任意满足DMARC格式的记录值,我列出的是最宽松的记录类型。(
改成你自己的)
也可以设置catch-all邮箱
【E5利用】Microsoft 365 搭建邮局|设置catch-all邮箱
利用Microsoft 365 E5开发者订阅搭建自己的邮局|设置catch-all邮箱
到这里大家便可以将outlook的邮件自动转发到指定邮箱了。自然,大家可以直接设置POP3直接绑定到自己的邮箱下。
3.E5续订方法
微软的开发者计划续订理论上是无限续订的。但条件是多用api,毕竟是为了开发者而存在的。而非消费者。
以下转自浅忆博客
记录关键步骤:
注册自己的api key(最好使用不用邮箱的同域子账号创建api,之后管理员授权即可)
登录进入 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 (可选)**一定要填对,不然无法授权的哦。指任何组织目录(任何Azure AD目录·多租户)中的帐户和个人Microsoft帐户(例如,Skype、Xbox刈
点击注册后记录以下信息:
注:应用程序(客户端)ID:在应用信息中有
创建客户端密码
最近很多同学反应授权报错 Invalid client secret is provided. 这里请注意了,客户端密码请复制 “值”,不要复制 ID。
客户端密码这里已经没有了“从不”,只能选2年。(别在意这些,谁也不知道2年后微软的策略会不会变,2年换一次密钥也不麻烦)
配置api权限
点击api权限->添加权限->microsoft graph—>应用程序权限->mail->勾选除mail.send外的权限
勾选一下四个选项后,同时点击 代表XX授予管理员同意
PS: 这一步如果用的是子账号创建的api,那么这一项是灰色的,不能点击。需要登录 管理员 账号,再点击 代表XX授予管理员同意添加key到自动订阅程序
进入 https://e5.qyi.io/这里需要github账户登录,同样的,我只能获取你在 github中的 用户id、用户名等基础信息(邮箱获取不了),其他的任何信息也获取不到(可自行尝试注册一个github Apps测试)。
填写信息再点击下一步,到了 授权
此时会跳转到 microsoftonline Auth2.0授权页面,在这里请注意使用同一个域下的空账号(子账号)进行授权。
(因为在这一步我能获取到授权的outlook账户 邮件,但是程序不会保存,仅仅是调用api。)以免在以后发生误会。点击 接受 后,将会跳转回自动订阅程序。
到这里你就可以不用管了,程序会每两个小时调用一次outlook的api。
还是要说一下隐私安全问题
因为有几个读者也说到了,统一回答下
- api权限仅拥有 openid offline_access Mail.Read Mail.ReadWrite Mail.ReadBasic Mail.ReadBasic.ALL 这6个权限
- 也就是说我仅仅能读取授权账户的邮件,其他任何事都做不了,且我写的这个程序没有保存任何除key之外的信息
- 所以一开始我就说了,用子账户进行授权(空账户)及创建api,这样不涉及到 隐私及安全问题。
- 如果实在担心不想用了,azure 直接删掉api就可以了。
遇到问题:
授权报错:应用id与密钥搞错。换回即可
邮箱无法设置自动转发,outlook设置打不开页面:重新删除账号添加即可。