diff --git a/src/dns/import.ts b/src/dns/import.ts index 69d4e0d..74fb6a9 100644 --- a/src/dns/import.ts +++ b/src/dns/import.ts @@ -1,14 +1,20 @@ +import { KNOWN_DKIM_PROVIDERS } from "../email/dkim-providers"; import type { RecordType, Zone, ZoneRecord } from "../zone/types"; import { query } from "./query"; import { DEFAULT_RESOLVERS } from "./resolvers"; import type { DohAnswer } from "./types"; const APEX_TYPES: RecordType[] = ["SOA", "NS", "A", "AAAA", "MX", "TXT", "CAA"]; + const SUBDOMAIN_PROBES: Array<{ name: string; types: RecordType[] }> = [ { name: "www", types: ["A", "AAAA", "CNAME"] }, { name: "_dmarc", types: ["TXT"] }, { name: "mail", types: ["A", "AAAA", "CNAME"] }, { name: "autodiscover", types: ["CNAME"] }, + ...Object.keys(KNOWN_DKIM_PROVIDERS).map((sel) => ({ + name: `${sel}._domainkey`, + types: ["TXT", "CNAME"] as RecordType[], + })), ]; export interface DnsImportResult { diff --git a/src/email/checks.ts b/src/email/checks.ts index 99ec8a9..2aa6bbe 100644 --- a/src/email/checks.ts +++ b/src/email/checks.ts @@ -12,23 +12,7 @@ export interface EmailCheck { records: ZoneRecord[]; } -const KNOWN_DKIM_PROVIDERS: Record = { - google: "Google Workspace", - selector1: "Microsoft 365", - selector2: "Microsoft 365", - mailgun: "Mailgun", - k1: "Mailchimp", - k2: "Mailchimp", - k3: "Mailchimp", - pm: "Postmark", - sendgrid: "SendGrid", - s1: "SendGrid", - s2: "SendGrid", - zoho: "Zoho", - amazonses: "Amazon SES", - ahasend: "AhaSend", - ahasend2: "AhaSend", -}; +import { KNOWN_DKIM_PROVIDERS } from "./dkim-providers"; function stripTrailingDot(s: string): string { return s.replace(/\.$/, ""); diff --git a/src/email/dkim-providers.ts b/src/email/dkim-providers.ts new file mode 100644 index 0000000..550f23d --- /dev/null +++ b/src/email/dkim-providers.ts @@ -0,0 +1,19 @@ +/** Known DKIM selectors mapped to their provider display name. */ +export const KNOWN_DKIM_PROVIDERS: Record = { + google: "Google Workspace", + selector1: "Microsoft 365", + selector2: "Microsoft 365", + mailgun: "Mailgun", + k1: "Mailchimp", + k2: "Mailchimp", + k3: "Mailchimp", + pm: "Postmark", + sendgrid: "SendGrid", + s1: "SendGrid", + s2: "SendGrid", + zoho: "Zoho", + amazonses: "Amazon SES", + ahasend: "AhaSend", + ahasend2: "AhaSend", + protonmail: "Proton Mail", +};