DKIM (DomainKeys Identified Mail) is a cryptographic signature proving a message truly originated from your domain and was not altered in transit. Without DKIM Gmail/Yandex throttle delivery. Process: generate RSA-2048 key pair → publish the public key as a selector._domainkey.example.com TXT record → enable signing in the mail server.
Below: step-by-step, working examples, common pitfalls, FAQ.
openssl genrsa -out dkim.private 2048 && openssl rsa -in dkim.private -pubout -out dkim.publicmail._domainkey (where mail is the selector), value v=DKIM1; k=rsa; p=PUBLIC_KEYDKIM-Signature header at the recipientcheck-auth@verifier.port25.com| Scenario | Config / Record |
|---|---|
| Google Workspace | Admin console → Apps → Gmail → Authenticate email → Generate new record (selector = google) |
| Yandex360 | Domain admin → Mail → DKIM. Selector = mail |
| Mailgun | TXT imported from Mailgun dashboard (selector = mx) |
| Postfix + OpenDKIM | opendkim-genkey -s mail -d example.com → copy mail.txt into DNS |
| SendGrid | DKIM host: s1._domainkey + s2._domainkey (2 records) |
DKIM (DomainKeys Identified Mail) is a mechanism to digitally sign email with a key stored in DNS. This allows recipients to verify that the email was genuinely sent from the specified domain.
Specify domain and DKIM selector — get the public key and its parameters.
RSA/Ed25519 key length, hash algorithm, flags, and validity period.
If key < 2048 bits — we issue a warning and key rotation instructions.
Direct DNS query in seconds — no waiting for TTL.
pre-send verification
mail server setup
phishing protection audit
email deliverability debug
DKIM check history and DNS monitoring for domain record changes.
Sign up freeYes. DMARC requires SPF OR DKIM to align. When the domain sends via a forwarder SPF often breaks while DKIM survives. Configure both.
A label that lets you run multiple DKIM keys in parallel (e.g. one for marketing, one for transactional). DNS record name is <code>selector._domainkey.domain</code>.
Read the <code>DKIM-Signature: d=sender.com; s=selector</code> header. Or use <a href="/en/dkim">Enterno DKIM Checker</a>.
Yes. Each service (Mailgun, SendGrid, your SMTP) can use its own selector. That is normal.