You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何避免通过MS Graph API发送的邮件进入垃圾邮箱

自定义域名通过MS Graph API发邮件进垃圾邮箱的SPF/DKIM配置问题

问题背景

用Outlook发送自定义域名(platformperry.com)邮件时,可正常进入收件人收件箱;但通过C#程序调用MS Graph API代用户发送时,邮件会被归为垃圾邮件,推测原因是API发送的邮件缺少SPF和DKIM验证。

此前使用第三方邮件服务(如Namecheap)时,直接添加服务商提供的SPF、MX、DKIM记录到Azure DNS即可正常使用。但本次需全Azure环境集成,已完成自定义域名的DNS验证,却遇到两种不同的DKIM配置路径,不确定哪种适用:

  • Azure门户Email Communication Service路径:创建服务并添加自定义域名后,平台提供域名验证、SPF及DKIM记录,手动添加到Azure DNS后显示已验证,但DNS检测工具无法检测到CNAME记录(已等待15分钟)。
  • Microsoft安全中心路径:该平台要求添加的两条CNAME记录与Azure门户提供的不同,添加后同样无法被DNS检测工具识别。

代码示例

var requestBody = new Microsoft.Graph.Users.Item.SendMail.SendMailPostRequestBody
{
    Message = new Message
    {
        From = new Recipient
        {
            EmailAddress = new EmailAddress
            {
                Address = emailMessage.From.EmailAddress,
            },
        },
        Subject = emailMessage.Subject,
        ToRecipients = ToRec,
        CcRecipients = CcRec,
        BccRecipients = BccRec,
        Attachments = attachments,
    }
};

await GetGraphClientWithManagedIdentityOrDevClient().Users["admin@platformperry.com"].SendMail.PostAsync(requestBody);

解决方案

1. 明确两种DKIM配置的适用场景

  • Azure Email Communication Service(ACS)的DKIM配置:仅适用于通过ACS自身API发送邮件的场景,不适用于MS Graph API代Exchange Online用户发件。
  • Microsoft 365安全中心的DKIM配置:这是针对Exchange Online(包括Outlook、MS Graph API代用户发件)的正确配置路径,必须使用该方案。

2. 正确配置Exchange Online的SPF和DKIM

  • SPF记录:在Azure DNS中添加/更新SPF记录,确保包含Exchange Online的SPF规则,格式如下:
    v=spf1 include:spf.protection.outlook.com -all
    
    若之前添加过ACS的SPF记录,可合并为:v=spf1 include:spf.protection.outlook.com include:azurecomm.net -all
  • DKIM配置步骤:
    1. 登录Microsoft 365安全中心,进入「电子邮件 > DKIM」。
    2. 找到域名platformperry.com,点击「创建DKIM密钥」。
    3. 复制生成的两条CNAME记录(格式示例:selector1._domainkey.platformperry.com指向selector1-platformperry-com._domainkey.xxx.onmicrosoft.com)。
    4. 登录Azure DNS,添加这两条CNAME记录,TTL建议设为3600。
    5. 返回安全中心,点击「启用DKIM」。

3. DNS记录生效注意事项

DNS记录全球传播通常需要24-48小时,15分钟远未达到生效时间。可通过本地命令验证:
打开命令提示符执行:nslookup selector1._domainkey.platformperry.com,若能返回正确的目标域名,说明记录已生效。

4. Graph API发件额外优化

  • 确保Graph Client使用的身份是已授权发件的Exchange Online用户(代码中的admin@platformperry.com),且该用户邮箱已完成域名关联验证。
  • 优化邮件内容:避免纯文本无格式、避免敏感关键词、添加合理正文,降低垃圾邮件评分。

内容的提问来源于stack exchange,提问作者Qiuzman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 07:46:20