보안 및 신뢰 · DomScan 제품

이메일 인증 API 레퍼런스

SPF, DKIM 및 DMARC를 포함한 이메일 인증 레코드를 분석합니다.

제공 내용

SPF, DKIM 및 DMARC를 포함한 이메일 인증 레코드를 분석합니다.

동기일괄RESTMCPSDK대화형 도구

다음과 같은 경우 이 제품을 선택하세요

대상 사용자

인간 검토나 권한 있는 테스트를 대체하지 않고 제한된 패시브 검사를 사용해 분류 및 조사를 보강하세요.

다음과 같은 경우 이 제품을 선택하세요

도메인의 SPF, DKIM, DMARC 및 관련 이메일 인증 상태를 검사할 때 선택하세요.

제공 내용

SPF, DKIM 및 DMARC를 포함한 이메일 인증 레코드를 분석합니다.

엔드포인트

통합하기 전에 지원되는 작업, 입력, 출력, 실행 모드 및 응답 제한을 확인하세요.

GET /v1/email-auth API 레퍼런스 보기
POST /v1/email-auth/bulk API 레퍼런스 보기
POST /v1/tools/spf/build API 레퍼런스 보기가이드 읽기
POST /v1/tools/spf/validate API 레퍼런스 보기가이드 읽기
POST /v1/tools/spf/flatten API 레퍼런스 보기가이드 읽기
POST /v1/tools/dmarc/build API 레퍼런스 보기가이드 읽기
POST /v1/tools/dmarc/validate API 레퍼런스 보기가이드 읽기
GET /v1/tools/dkim/check API 레퍼런스 보기가이드 읽기
GET /v1/tools/dkim/discover API 레퍼런스 보기가이드 읽기

크레딧 및 인증

1-3 인증 필요. 정확한 비용과 항목별 요금은 작업 레퍼런스에서 확인하세요.

작업 예시

문서화된 작업을 사용해 공개 증거를 수집, 평가, 보강, 검증, 비교, 보호 또는 모니터링하세요.

GET /v1/email-auth 크레딧: 3

쿼리 매개변수

매개변수 유형 필수
domain string 필수
selectors string 선택 사항

응답 필드

필드 유형
domain string
spf object
spf.classification object
spf.classification.status string
spf.classification.reason string
spf.classification.evidence object
spf.classification.evidence.source string
spf.classification.evidence.method string
spf.classification.evidence.observed_at string
spf.classification.evidence.detail string
spf.classification.checked_at string
spf.record string | null
spf.lookup_estimate integer
spf.includes[] string[]
spf.redirect string | null
spf.macros_present boolean
spf.macro_references[] string[]
spf.lookup_walk_count integer
spf.lookup_limit_exceeded boolean
spf.walk[] object[]
spf.walk[] object
spf.walk[].domain string
spf.walk[].depth integer
spf.walk[].record string
spf.walk[].mechanisms[] string[]
spf.walk[].includes[] string[]
spf.walk[].redirect string | null
spf.walk[].direct_lookup_count integer
spf.walk[].total_lookup_count integer
spf.walk[].macros_present boolean
spf.walk[].macro_references[] string[]
spf.walk[].multiple_records integer
spf.walk_errors[] string[]
spf.lookup_tree object
spf.lookup_tree.root_domain string
spf.lookup_tree.node_count integer
spf.lookup_tree.max_depth integer
spf.lookup_tree.cycles_detected[] string[]
spf.lookup_tree.nodes[] object[]
spf.lookup_tree.nodes[] object
spf.lookup_tree.nodes[].domain string
spf.lookup_tree.nodes[].depth integer
spf.lookup_tree.nodes[].status string
spf.lookup_tree.nodes[].direct_lookup_count integer
spf.lookup_tree.nodes[].total_lookup_count integer
spf.lookup_tree.nodes[].includes[] string[]
spf.lookup_tree.nodes[].redirect string | null
spf.lookup_tree.nodes[].mechanisms[] string[]
spf.lookup_tree.nodes[].errors[] string[]
spf.lookup_tree.edges[] object[]
spf.lookup_tree.edges[] object
spf.lookup_tree.edges[].from string
spf.lookup_tree.edges[].to string
spf.lookup_tree.edges[].type string
dkim[] object[]
dkim[] object
dkim[].classification object
dkim[].classification.status string
dkim[].classification.reason string
dkim[].classification.evidence object
dkim[].classification.evidence.source string
dkim[].classification.evidence.method string
dkim[].classification.evidence.observed_at string
dkim[].classification.evidence.detail string
dkim[].classification.checked_at string
dkim[].selector string
dkim[].record string | null
dkim[].key_type string | null
dkim[].key_size integer | null
dkim_audit object
dkim_audit.selectors_checked[] string[]
dkim_audit.selectors_found[] object[]
dkim_audit.selectors_found[] object
dkim_audit.selectors_found[].selector string
dkim_audit.selectors_found[].dns_name string
dkim_audit.selectors_found[].record string | null
dkim_audit.selectors_found[].record_type string | null
dkim_audit.selectors_found[].cname_targets[] string[]
dkim_audit.selectors_found[].provider_hint string | null
dkim_audit.selectors_found[].key_type string | null
dkim_audit.selectors_found[].key_size integer | null
dkim_audit.selectors_found[].valid boolean
dkim_audit.selectors_found[].revoked boolean
dkim_audit.selectors_found[].weak boolean
dkim_audit.selectors_found[].hash_algorithms[] string[]
dkim_audit.selectors_found[].service_type string | null
dkim_audit.selectors_found[].flags[] string[]
dkim_audit.selectors_found[].issues[] string[]
dkim_audit.total_found integer
dkim_audit.providers_detected[] string[]
dkim_audit.valid_selector_count integer
dkim_audit.weak_selector_count integer
dkim_audit.revoked_selector_count integer
bimi object
bimi.classification object
bimi.classification.status string
bimi.classification.reason string
bimi.classification.evidence object
bimi.classification.evidence.source string
bimi.classification.evidence.method string
bimi.classification.evidence.observed_at string
bimi.classification.evidence.detail string
bimi.classification.checked_at string
bimi.exists boolean
bimi.record string | null
bimi.valid boolean
bimi.logo_url string | null
bimi.authority_url string | null
bimi.logo_fetch_ok boolean | null
bimi.logo_http_status integer | null
bimi.logo_content_type string | null
bimi.logo_bytes integer | null
bimi.logo_svg_detected boolean | null
bimi.vmc_present boolean
bimi.vmc_fetched boolean | null
bimi.vmc_http_status integer | null
bimi.vmc_content_type string | null
bimi.vmc_certificate_valid boolean | null
bimi.vmc_subject string | null
bimi.vmc_issuer string | null
bimi.vmc_not_before string | null
bimi.vmc_not_after string | null
bimi.vmc_days_to_expiry integer | null
bimi.vmc_fingerprint_sha256 string | null
bimi.vmc_san_domains[] string[]
bimi.errors[] string[]
dmarc object
dmarc.classification object
dmarc.classification.status string
dmarc.classification.reason string
dmarc.classification.evidence object
dmarc.classification.evidence.source string
dmarc.classification.evidence.method string
dmarc.classification.evidence.observed_at string
dmarc.classification.evidence.detail string
dmarc.classification.checked_at string
dmarc.record string | null
dmarc.tags object
mta_sts object
mta_sts.classification object
mta_sts.classification.status string
mta_sts.classification.reason string
mta_sts.classification.evidence object
mta_sts.classification.evidence.source string
mta_sts.classification.evidence.method string
mta_sts.classification.evidence.observed_at string
mta_sts.classification.evidence.detail string
mta_sts.classification.checked_at string
mta_sts.exists boolean
mta_sts.record string | null
mta_sts.valid boolean
mta_sts.policy_id string | null
mta_sts.policy_fetch_ok boolean
mta_sts.policy_http_status integer | null
mta_sts.mode string | null
mta_sts.max_age integer | null
mta_sts.mx_hosts[] string[]
mta_sts.mx_records[] string[]
mta_sts.policy_matches_mx boolean | null
mta_sts.uncovered_mx[] string[]
mta_sts.errors[] string[]
tls_rpt object
tls_rpt.exists boolean
tls_rpt.record string | null
tls_rpt.valid boolean
tls_rpt.rua[] string[]
tls_rpt.errors[] string[]
client_access object
client_access.provider_hint object
client_access.provider_hint.id string
client_access.provider_hint.name string
client_access.mx_records[] string[]
client_access.services[] object[]
client_access.services[] object
client_access.services[].service string
client_access.services[].host string
client_access.services[].port integer
client_access.services[].source string
client_access.services[].priority integer | null
client_access.services[].weight integer | null
client_access.services[].tls_mode string
client_access.services[].reachable boolean
client_access.services[].tls_negotiated boolean
client_access.services[].starttls_offered boolean | null
client_access.services[].protocol string | null
client_access.services[].cipher string | null
client_access.services[].certificate object
client_access.services[].certificate.subject string
client_access.services[].certificate.issuer string
client_access.services[].certificate.not_before string
client_access.services[].certificate.not_after string
client_access.services[].certificate.days_to_expiry integer
client_access.services[].certificate.expired boolean
client_access.services[].certificate.san_domains[] string[]
client_access.services[].certificate.public_key_type string | null
client_access.services[].certificate.public_key_bits integer | null
client_access.services[].certificate.fingerprint_sha256 string | null
client_access.services[].certificate.hostname_match boolean | null
client_access.services[].certificate.chain_valid boolean
client_access.services[].certificate.chain_error string | null
client_access.services[].chain_depth integer
client_access.services[].error string | null
client_access.reachable_service_count integer
client_access.secure_service_count integer
autodiscover object
autodiscover.provider_hint object
autodiscover.provider_hint.id string
autodiscover.provider_hint.name string
autodiscover.mx_records[] string[]
autodiscover.srv object
autodiscover.srv.autodiscover[] object[]
autodiscover.srv.autodiscover[] object
autodiscover.srv.autodiscover[].priority integer
autodiscover.srv.autodiscover[].weight integer
autodiscover.srv.autodiscover[].port integer
autodiscover.srv.autodiscover[].target string
autodiscover.srv.submission[] object[]
autodiscover.srv.submission[] object
autodiscover.srv.submission[].priority integer
autodiscover.srv.submission[].weight integer
autodiscover.srv.submission[].port integer
autodiscover.srv.submission[].target string
autodiscover.srv.submissions[] object[]
autodiscover.srv.submissions[] object
autodiscover.srv.submissions[].priority integer
autodiscover.srv.submissions[].weight integer
autodiscover.srv.submissions[].port integer
autodiscover.srv.submissions[].target string
autodiscover.srv.imap[] object[]
autodiscover.srv.imap[] object
autodiscover.srv.imap[].priority integer
autodiscover.srv.imap[].weight integer
autodiscover.srv.imap[].port integer
autodiscover.srv.imap[].target string
autodiscover.srv.imaps[] object[]
autodiscover.srv.imaps[] object
autodiscover.srv.imaps[].priority integer
autodiscover.srv.imaps[].weight integer
autodiscover.srv.imaps[].port integer
autodiscover.srv.imaps[].target string
autodiscover.srv.pop3[] object[]
autodiscover.srv.pop3[] object
autodiscover.srv.pop3[].priority integer
autodiscover.srv.pop3[].weight integer
autodiscover.srv.pop3[].port integer
autodiscover.srv.pop3[].target string
autodiscover.srv.pop3s[] object[]
autodiscover.srv.pop3s[] object
autodiscover.srv.pop3s[].priority integer
autodiscover.srv.pop3s[].weight integer
autodiscover.srv.pop3s[].port integer
autodiscover.srv.pop3s[].target string
autodiscover.thunderbird_autoconfig object
autodiscover.thunderbird_autoconfig.subdomain object
autodiscover.thunderbird_autoconfig.subdomain.url string
autodiscover.thunderbird_autoconfig.subdomain.status_code integer | null
autodiscover.thunderbird_autoconfig.subdomain.content_type string | null
autodiscover.thunderbird_autoconfig.subdomain.final_url string | null
autodiscover.thunderbird_autoconfig.subdomain.redirect_count integer
autodiscover.thunderbird_autoconfig.subdomain.incoming[] object[]
autodiscover.thunderbird_autoconfig.subdomain.incoming[] object
autodiscover.thunderbird_autoconfig.subdomain.incoming[].type string
autodiscover.thunderbird_autoconfig.subdomain.incoming[].hostname string
autodiscover.thunderbird_autoconfig.subdomain.incoming[].port integer
autodiscover.thunderbird_autoconfig.subdomain.incoming[].socket_type string
autodiscover.thunderbird_autoconfig.subdomain.incoming[].username string
autodiscover.thunderbird_autoconfig.subdomain.outgoing[] object[]
autodiscover.thunderbird_autoconfig.subdomain.outgoing[] object
autodiscover.thunderbird_autoconfig.subdomain.outgoing[].type string
autodiscover.thunderbird_autoconfig.subdomain.outgoing[].hostname string
autodiscover.thunderbird_autoconfig.subdomain.outgoing[].port integer
autodiscover.thunderbird_autoconfig.subdomain.outgoing[].socket_type string
autodiscover.thunderbird_autoconfig.subdomain.outgoing[].username string
autodiscover.thunderbird_autoconfig.subdomain.error string | null
autodiscover.thunderbird_autoconfig.well_known object
autodiscover.thunderbird_autoconfig.well_known.url string
autodiscover.thunderbird_autoconfig.well_known.status_code integer | null
autodiscover.thunderbird_autoconfig.well_known.content_type string | null
autodiscover.thunderbird_autoconfig.well_known.final_url string | null
autodiscover.thunderbird_autoconfig.well_known.redirect_count integer
autodiscover.thunderbird_autoconfig.well_known.incoming[] object[]
autodiscover.thunderbird_autoconfig.well_known.incoming[] object
autodiscover.thunderbird_autoconfig.well_known.incoming[].type string
autodiscover.thunderbird_autoconfig.well_known.incoming[].hostname string
autodiscover.thunderbird_autoconfig.well_known.incoming[].port integer
autodiscover.thunderbird_autoconfig.well_known.incoming[].socket_type string
autodiscover.thunderbird_autoconfig.well_known.incoming[].username string
autodiscover.thunderbird_autoconfig.well_known.outgoing[] object[]
autodiscover.thunderbird_autoconfig.well_known.outgoing[] object
autodiscover.thunderbird_autoconfig.well_known.outgoing[].type string
autodiscover.thunderbird_autoconfig.well_known.outgoing[].hostname string
autodiscover.thunderbird_autoconfig.well_known.outgoing[].port integer
autodiscover.thunderbird_autoconfig.well_known.outgoing[].socket_type string
autodiscover.thunderbird_autoconfig.well_known.outgoing[].username string
autodiscover.thunderbird_autoconfig.well_known.error string | null
autodiscover.outlook_autodiscover object
autodiscover.outlook_autodiscover.url string
autodiscover.outlook_autodiscover.status_code integer | null
autodiscover.outlook_autodiscover.content_type string | null
autodiscover.outlook_autodiscover.final_url string | null
autodiscover.outlook_autodiscover.redirect_count integer
autodiscover.outlook_autodiscover.auth_required boolean | null
autodiscover.outlook_autodiscover.error string | null
autodiscover.recommended[] object[]
autodiscover.recommended[] object
autodiscover.recommended[].service string
autodiscover.recommended[].host string
autodiscover.recommended[].port integer
autodiscover.recommended[].tls_mode string
autodiscover.recommended[].source string
edge_summary object
edge_summary.relay_configured boolean
edge_summary.evidence_sources[] string[]
edge_summary.spf_lookup_count integer | null
edge_summary.spf_lookup_limit_exceeded boolean
edge_summary.dkim_valid_selector_count integer
edge_summary.dkim_weak_selector_count integer
edge_summary.dkim_revoked_selector_count integer
edge_summary.providers_detected[] string[]
edge_summary.mta_sts_enforced boolean
edge_summary.tls_rpt_configured boolean
edge_summary.bimi_logo_verified boolean | null
edge_summary.vmc_certificate_valid boolean | null
edge_summary.client_access_reachable_services integer | null
edge_summary.client_access_secure_services integer | null
edge_summary.autodiscover_recommendation_count integer | null
provider_selector_recommendations[] object[]
provider_selector_recommendations[] object
provider_selector_recommendations[].provider string
provider_selector_recommendations[].selectors[] string[]
provider_selector_recommendations[].source string
provider_selector_recommendations[].checked_selectors[] string[]
provider_selector_recommendations[].found_selectors[] string[]
provider_selector_recommendations[].missing_selectors[] string[]
grade string | null
checks_unknown integer
score_confidence string
notes[] string[]

예제 요청

curl -H "X-API-Key: $DOMSCAN_API_KEY" "https://domscan.net/v1/email-auth?domain=example.com&selectors=google%2Cselector1%2Csendgrid"
const response = await fetch("https://domscan.net/v1/email-auth?domain=example.com&selectors=google%2Cselector1%2Csendgrid", {
  headers: { "X-API-Key": process.env.DOMSCAN_API_KEY },
});
const data = await response.json();
console.log(data);
import os
import requests

response = requests.get(
    "https://domscan.net/v1/email-auth?domain=example.com&selectors=google%2Cselector1%2Csendgrid",
    headers={"X-API-Key": os.environ["DOMSCAN_API_KEY"]},
)
print(response.json())
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, err := http.NewRequest(http.MethodGet, "https://domscan.net/v1/email-auth?domain=example.com&selectors=google%2Cselector1%2Csendgrid", nil)
	if err != nil {
		panic(err)
	}
	req.Header.Set("X-API-Key", os.Getenv("DOMSCAN_API_KEY"))

	resp, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer resp.Body.Close()

	data, err := io.ReadAll(resp.Body)
	if err != nil {
		panic(err)
	}
	fmt.Println(resp.Status, string(data))
}
require "json"
require "net/http"

uri = URI("https://domscan.net/v1/email-auth?domain=example.com&selectors=google%2Cselector1%2Csendgrid")
request = Net::HTTP::Get.new(uri)
request["X-API-Key"] = ENV.fetch("DOMSCAN_API_KEY")

response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
  http.request(request)
end
puts JSON.pretty_generate(JSON.parse(response.body))

예제 응답

{
  "domain": "google.com",
  "spf": {
    "record": "v=spf1 include:_spf.google.com ~all",
    "lookup_estimate": 1,
    "includes": [
      "_spf.google.com"
    ],
    "redirect": null,
    "macros_present": false,
    "macro_references": [],
    "lookup_walk_count": 1,
    "lookup_limit_exceeded": false,
    "walk": [
      {
        "domain": "google.com",
        "depth": 0,
        "record": "v=spf1 include:_spf.google.com ~all",
        "mechanisms": [
          "include:_spf.google.com",
          "~all"
        ],
        "includes": [
          "_spf.google.com"
        ],
        "redirect": null,
        "direct_lookup_count": 1,
        "total_lookup_count": 1,
        "macros_present": false,
        "macro_references": [],
        "multiple_records": 1
      }
    ],
    "walk_errors": [],
    "lookup_tree": {
      "root_domain": "google.com",
      "node_count": 1,
      "max_depth": 0,
      "cycles_detected": [],
      "nodes": [
        {
          "domain": "google.com",
          "depth": 0,
          "status": "present",
          "direct_lookup_count": 1,
          "total_lookup_count": 1,
          "includes": [
            "_spf.google.com"
          ],
          "redirect": null,
          "mechanisms": [
            "include:_spf.google.com",
            "~all"
          ],
          "errors": []
        }
      ],
      "edges": [
        {
          "from": "google.com",
          "to": "_spf.google.com",
          "type": "include"
        }
      ]
    }
  },
  "dkim": [
    {
      "selector": "google",
      "record": "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A",
      "key_type": "rsa",
      "key_size": 2048
    }
  ],
  "dkim_audit": {
    "selectors_checked": [
      "google",
      "default",
      "selector1",
      "selector2"
    ],
    "selectors_found": [
      {
        "selector": "google",
        "dns_name": "google._domainkey.google.com",
        "record": "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A",
        "record_type": "TXT",
        "cname_targets": [],
        "provider_hint": "Google Workspace",
        "key_type": "rsa",
        "key_size": 2048,
        "valid": true,
        "revoked": false,
        "weak": false,
        "hash_algorithms": [
          "sha256"
        ],
        "service_type": "email",
        "flags": [
          "s"
        ],
        "issues": []
      }
    ],
    "total_found": 1,
    "providers_detected": [
      "Google Workspace"
    ],
    "valid_selector_count": 1,
    "weak_selector_count": 0,
    "revoked_selector_count": 0
  },
  "bimi": {
    "exists": true,
    "record": "v=BIMI1; l=https://example.com/logo.svg; a=https://example.com/vmc.pem",
    "valid": true,
    "logo_url": "https://example.com/logo.svg",
    "authority_url": "https://example.com/vmc.pem",
    "logo_fetch_ok": true,
    "logo_http_status": 200,
    "logo_content_type": "image/svg+xml",
    "logo_bytes": 2048,
    "logo_svg_detected": true,
    "vmc_present": true,
    "vmc_fetched": true,
    "vmc_http_status": 200,
    "vmc_content_type": "application/x-pem-file",
    "vmc_certificate_valid": true,
    "vmc_subject": "/CN=Example Inc VMC",
    "vmc_issuer": "/CN=Example Issuer",
    "vmc_not_before": "2026-01-01T00:00:00Z",
    "vmc_not_after": "2027-01-01T00:00:00Z",
    "vmc_days_to_expiry": 258,
    "vmc_fingerprint_sha256": "AA:BB:CC:DD",
    "vmc_san_domains": [
      "google.com"
    ],
    "errors": []
  },
  "dmarc": {
    "record": "v=DMARC1; p=reject; rua=mailto:[email protected]",
    "tags": {
      "v": "DMARC1",
      "p": "reject",
      "rua": "mailto:[email protected]"
    }
  },
  "mta_sts": {
    "exists": true,
    "record": "v=STSv1; id=2024010101Z",
    "valid": true,
    "policy_id": "2024010101Z",
    "policy_fetch_ok": true,
    "policy_http_status": 200,
    "mode": "enforce",
    "max_age": 86400,
    "mx_hosts": [
      "*.google.com"
    ],
    "mx_records": [
      "aspmx.l.google.com"
    ],
    "policy_matches_mx": true,
    "uncovered_mx": [],
    "errors": []
  },
  "tls_rpt": {
    "exists": true,
    "record": "v=TLSRPTv1; rua=mailto:[email protected]",
    "valid": true,
    "rua": [
      "mailto:[email protected]"
    ],
    "errors": []
  },
  "client_access": {
    "provider_hint": {
      "id": "google_workspace",
      "name": "Google Workspace"
    },
    "mx_records": [
      "aspmx.l.google.com"
    ],
    "services": [
      {
        "service": "imap",
        "host": "imap.gmail.com",
        "port": 993,
        "source": "provider_default",
        "priority": null,
        "weight": null,
        "tls_mode": "implicit",
        "reachable": true,
        "tls_negotiated": true,
        "starttls_offered": null,
        "protocol": "TLSv1.3",
        "cipher": "TLS_AES_256_GCM_SHA384",
        "certificate": {
          "subject": "/CN=imap.gmail.com",
          "issuer": "/CN=WR2",
          "not_before": "2026-01-01T00:00:00Z",
          "not_after": "2026-07-01T00:00:00Z",
          "days_to_expiry": 70,
          "expired": false,
          "san_domains": [
            "imap.gmail.com"
          ],
          "public_key_type": "EC",
          "public_key_bits": 256,
          "fingerprint_sha256": "CC:DD:EE:FF",
          "hostname_match": true,
          "chain_valid": true,
          "chain_error": null
        },
        "chain_depth": 2,
        "error": null
      }
    ],
    "reachable_service_count": 1,
    "secure_service_count": 1
  },
  "autodiscover": {
    "provider_hint": {
      "id": "google_workspace",
      "name": "Google Workspace"
    },
    "mx_records": [
      "aspmx.l.google.com"
    ],
    "srv": {
      "autodiscover": [],
      "submission": [],
      "submissions": [],
      "imap": [],
      "imaps": [],
      "pop3": [],
      "pop3s": []
    },
    "thunderbird_autoconfig": {
      "subdomain": {
        "url": "https://autoconfig.google.com/mail/config-v1.1.xml?emailaddress=postmaster%40google.com",
        "status_code": 404,
        "content_type": "text/html",
        "final_url": "https://autoconfig.google.com/mail/config-v1.1.xml?emailaddress=postmaster%40google.com",
        "redirect_count": 0,
        "incoming": [],
        "outgoing": [],
        "error": null
      },
      "well_known": {
        "url": "https://google.com/.well-known/autoconfig/mail/config-v1.1.xml?emailaddress=postmaster%40google.com",
        "status_code": 200,
        "content_type": "application/xml",
        "final_url": "https://google.com/.well-known/autoconfig/mail/config-v1.1.xml?emailaddress=postmaster%40google.com",
        "redirect_count": 0,
        "incoming": [
          {
            "type": "imap",
            "hostname": "imap.gmail.com",
            "port": 993,
            "socket_type": "SSL"
          }
        ],
        "outgoing": [
          {
            "type": "smtp",
            "hostname": "smtp.gmail.com",
            "port": 587,
            "socket_type": "STARTTLS"
          }
        ],
        "error": null
      }
    },
    "outlook_autodiscover": {
      "url": "https://autodiscover.google.com/autodiscover/autodiscover.xml",
      "status_code": 401,
      "content_type": "text/html",
      "final_url": "https://autodiscover.google.com/autodiscover/autodiscover.xml",
      "redirect_count": 0,
      "auth_required": true,
      "error": null
    },
    "recommended": [
      {
        "service": "imap",
        "host": "imap.gmail.com",
        "port": 993,
        "tls_mode": "implicit",
        "source": "provider_default"
      }
    ]
  },
  "edge_summary": {
    "relay_configured": true,
    "evidence_sources": [
      "spf_walk",
      "mail_policies",
      "bimi_audit",
      "dkim_audit",
      "mail_client_access",
      "mail_autodiscover"
    ],
    "spf_lookup_count": 1,
    "spf_lookup_limit_exceeded": false,
    "dkim_valid_selector_count": 1,
    "dkim_weak_selector_count": 0,
    "dkim_revoked_selector_count": 0,
    "providers_detected": [
      "Google Workspace"
    ],
    "mta_sts_enforced": true,
    "tls_rpt_configured": true,
    "bimi_logo_verified": true,
    "vmc_certificate_valid": true,
    "client_access_reachable_services": 1,
    "client_access_secure_services": 1,
    "autodiscover_recommendation_count": 1
  },
  "provider_selector_recommendations": [
    {
      "provider": "Google Workspace",
      "selectors": [
        "google",
        "20230601",
        "20210112"
      ],
      "source": "detected",
      "checked_selectors": [
        "google"
      ],
      "found_selectors": [
        "google"
      ],
      "missing_selectors": [
        "20230601",
        "20210112"
      ]
    }
  ],
  "grade": "A",
  "notes": []
}

HTTP 상태 코드

  • 200 성공
  • 400 잘못된 요청
  • 401 인증되지 않음
  • 402 결제 필요
  • 429 요청 과다

자주 묻는 질문

이메일 인증 요청 및 응답 레퍼런스는 어디에서 확인할 수 있나요?

이메일 인증 API 레퍼런스에서 매개변수, 응답 필드, 예시, 상태 코드 및 지원되는 작업 모드를 확인하세요.

이메일 인증의 알 수 없거나 불완전한 결과는 어떻게 해석해야 하나요?

알 수 없거나 부분적인 결과는 요청된 증거를 완전히 판단할 수 없었다는 뜻입니다. 후속 의사결정에서 결과 상태, 신뢰도, 최신성 및 제한을 유지하세요.

이메일 인증의 요금은 어떻게 책정되나요?

요금은 작업과 실행 모드에 따라 달라집니다. 현재 크레딧 비용, 인증 요구 사항 및 항목별 규칙은 엔드포인트 레퍼런스에서 확인하세요.

다음 회사의 사람들이 사용합니다

InstantOutseerMongoDBRespondentSage Expense ManagementInstantlyD.R. HortonWhatConvertsAdobeLLM Pulse