This file lets you override SMTP probing behavior by domain or MX host.
Top-level keys:
byDomain: domain -> policybyMx: full MX host -> policybyMxSuffix: MX host suffix -> policy
Policy keys:
disableCatchAll(bool)smtpTimeoutSeconds(int)smtpPortOverride(int)
All keys are case-insensitive. Domains and MX hosts are normalized (trimmed and lowercased). Suffix entries should include a leading dot.
{
"byDomain": {
"example.com": { "disableCatchAll": true, "smtpTimeoutSeconds": 30 }
},
"byMxSuffix": {
".antispamcloud.com": { "disableCatchAll": true, "smtpTimeoutSeconds": 45 }
}
}- The highest
smtpTimeoutSecondsvalue wins when multiple rules apply. - Built-in rules are used when
UseBuiltinSmtpRulesis true and no custom path is provided.
ddcli ValidateEmail user@example.com --smtp --catch-all --smtp-rules ./smtp-rules.json
ddcli ValidateEmail user@example.com --smtp --smtp-rules ./smtp-rules.json --no-builtin-smtp-rulesTest-DDEmailAddress -EmailAddress "user@example.com" -SmtpProbe -SmtpRulesPath "./smtp-rules.json"
Test-DDEmailAddress -EmailAddress "user@example.com" -SmtpProbe -SmtpRulesPath "./smtp-rules.json" -DisableBuiltinSmtpRulesProton account checks require a valid authenticated session.
Provide the AUTH-<uid> cookie value and the x-pm-uid header value from an active Proton session.
If the values are missing or invalid, DomainDetective falls back to SMTP probing.
Provider web checks rely on undocumented endpoints and may change or rate-limit without notice.
Avoid passing Proton auth values on the command line where they may be visible in shell history or process listings.
PowerShell example:
Test-DDEmailAddress -EmailAddress "user@proton.me" -SmtpProbe -EnableProviderWebChecks -ProtonAuthCookie "AUTH-<uid>=<value>" -ProtonUid "<uid>"CLI example:
ddcli ValidateEmail user@proton.me --smtp --provider-web --proton-auth "AUTH-<uid>=<value>" --proton-uid "<uid>"