前段时间微软修改了开发者试用的规则,于是注册了一个E5,把hanada.info和tamersunion.net都迁移到了office365上面。于是研究了一下,发现只有默认的onmicrosoft.com域开启了DKIM签名,自己接入的域名并没有开启,于是连同SPF、DMARC一起介绍一下吧,完成这三项设置之后,可以使你的邮件更具可信度,减少进入垃圾箱的可能性。
SPF
SPF的开启比较简单,在添加域名时,微软已要求添加数个域名记录,其中一个就是SPF记录。
SPF记录是一个TXT记录,在域名解析处添加如下记录即可
主机记录:@
记录值:v=spf1 include:spf.protection.outlook.com -all
如果你接入域名时已按照微软的流程来添加记录,这个记录应该已经在你的域名上生效了。
DKIM
DKIM的开启比较麻烦。首先进入到office365管理面板,点击左侧菜单栏的「全部显示」,然后点击「Exchange」,进入Exchange控制台。
点击保护项下的DKIM子项
然后会罗列出接入订阅的所有域名(包括默认域名),选中其中一个域名,右侧会显示其DKIM状态,以及DKIM开关(大概。。。。),下图是已经开启DKIM的界面
如果没有开启DKIM,会显示如下状态(可以点击启用按钮启用DKIM签名)。
此时只要点击启用按钮即可启用DKIM签名,但很多时候,是没有启用按钮的直接提示「没有为此域名保存DKIM签名」。(因为暂时没有接入新域名这个不截图了)
那么就只能使用Powershell来通过命令方式启用。
首先为域名添加两个 CNAME 记录
主机记录:selector1._hanadalee
记录值:selector1-hanada-info._hanadalee.onmicrosoft.com
主机记录:selector2._hanadalee
记录值:selector2-hanada-info._hanadalee.onmicrosoft.com
其中hanada-info是域名,点号使用横杠代替,hanadalee.onmicrosoft.com是订阅的默认域名,如果不记得可以看看DKIM那个默认签名域。
然后在Windows系统中以管理员身份运行PowerShell。
依次输入如下命令
Set-ExecutionPolicy RemoteSigned
$UserCredential = Get-Credential
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $UserCredential -Authentication Basic -AllowRedirection
Import-PSSession $Session
中途会弹出一个登录框,输入你的管理员邮箱和密码即可。
如果没有错误提示,应该已经成功登录了。
先使用以下命令查看DKIM状态,如果不存在则会返回没有对象(域名处替换为你的域名)
Get-DkimSigningConfig -Identity hanada.info| Format-List
此时输入以下命令开启DKIM(域名处替换为你的域名)
New-DkimSigningConfig -DomainName hanada.info -Enabled $true
命令执行成功后,刷新Exchange控制台,会发现DKIM已开启成功。
DMARC
DMARC开启也比较简单,在域名解析处操作即可。
添加一条TXT主机记录,格式如下(域名替换为你自己的域名)
主机记录:_dmarc
记录值:v=DMARC1; p=none; pct=100
注意每个分号后面有一个空格,以下为记录值里面三个常用的参数的说明。
v:标示DMARC的版本,值应当始终为DMARC1。
p:用于告知收件方,当检测到某邮件存在伪造我(发件人)的情况,收件方要做出什么处理,处理方式从轻到重依次为:none为不作任何处理;quarantine为将邮件标记为垃圾邮件;reject为拒绝该邮件。一般建议设置为none,即便设置为none对方邮局也会进行合理的操作。
pct:表示域名所有者邮件流中应用DMARC策略的消息百分比,一般设置为100即可。