# What is DKIM? DomainKeys Identified Mail Explained

Understand what DKIM is, how DKIM signatures and keys work, and the steps to configure it—so your domain stays safe from spoofing and your mail reaches the inbox.

DKIM (DomainKeys Identified Mail) is an authentication standard that gives receiving mail servers a way to confirm two things about a message: that the domain in the sender address truly sent it, and that nothing in the message changed between sending and delivery.

A useful way to picture DKIM is as a tamper-evident seal—much like the wax stamp on an old letter, it proves who the message came from and reveals if anyone opened or altered it en route.

## How DKIM Works

Under the hood, DKIM relies on public-key cryptography. The lifecycle of a signed message looks like this:

### 1\. The Sending Server Signs the Email

As your message leaves the server, a DKIM signature is generated and attached to its headers. Only your server can produce this signature, because only it holds the private key.

### 2\. The Signature is Added to Headers

That signature—stored in a header field named "DKIM-Signature"—contains a hash covering selected parts of the message, such as the sender, subject line, and body.

### 3\. The Receiving Server Verifies

On delivery, the recipient's server fetches your domain's public DKIM key from DNS and checks the signature against it. A successful match means the message passes DKIM.

### 4\. Delivery Decision

A passing signature strengthens your reputation and helps the message reach the inbox. A missing or failing one invites suspicion—and often a detour into the spam folder.

#### Technical Detail

The system is built on asymmetric cryptography: a private/public key pair. The private key never leaves your mail server, while the public key sits openly in DNS so any receiver can perform verification.

## What Does a DKIM Record Look Like?

The DNS side of DKIM is a TXT record holding your public key. A sample record:

Example DKIM DNS Record

```
default._domainkey.yourdomain.com  IN  TXT  "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC3QEKyU1fSma0axspqYK5iAj+54lsAg4qRRCnpKK68hawSJfliq9vKD6czJ..."

# Breaking down the components:
# v=DKIM1          -> DKIM version
# k=rsa            -> Key type (RSA encryption)
# p=MIGfMA0...     -> Public key (base64 encoded)
```

#### Selector Names

That "default" prefix in `default._domainkey` is known as a selector. Multiple selectors let you rotate keys safely or keep distinct mail streams (say, transactional versus marketing) on separate keys.

## Why DKIM Matters for Email Deliverability

### Prevents Email Spoofing

Without access to your private key, a spammer simply cannot produce a valid signature—so forging mail that authenticates as your domain becomes practically infeasible.

### Improves Deliverability

Gmail, Outlook, Yahoo, and other major providers treat a valid DKIM signature as a positive trust signal—and reward it with better inbox placement.

### Protects Brand Reputation

Every phishing email that impersonates you chips away at customer trust. DKIM closes off domain spoofing, keeping your brand out of attackers' hands.

### Enables DMARC

You can't run DMARC—the protocol that layers enforcement policies and reporting on top of authentication—without DKIM (or SPF) in place first.

#### Gmail & Yahoo Requirements

Since February 2024, any sender pushing 5,000+ messages a day to Gmail or Yahoo must authenticate with DKIM. Below that threshold it isn't mandatory—but it remains a clear best practice for everyone.

## What Does a DKIM Signature Look Like?

Every signed message carries the signature in its headers. Here's a real-world example of that header field:

DKIM-Signature Header Example

```
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
  d=yourdomain.com; s=default;
  h=from:subject:date:message-id:to;
  bh=frcCV1k9oG9oKj3dpUqdJg1PxRT2RSN/XKdLCPjaYaY=;
  b=GJwP3Qr8KqKKKNT5HL8j3fjXvLEm9KmZs6YdO2KqEqr...

# Key components:
# v=1                -> DKIM version
# d=yourdomain.com   -> Signing domain
# s=default          -> Selector (matches DNS record)
# h=from:subject...  -> Headers included in signature
# bh=frcCV1...       -> Hash of email body
# b=GJwP3Q...        -> The actual signature
```

## How Bitelio Simplifies DKIM

Doing DKIM by hand takes real effort—key generation, DNS wrangling, server configuration. Bitelio collapses all of it into a few clicks:

1

### Automatic Key Generation

The moment you add a domain to your account, Bitelio creates a secure DKIM key pair for it—no manual key management required.

2

### Simple DNS Setup

You get the precise DNS entries to publish, ready to copy straight into your DNS provider's dashboard.

3

### Automatic Signing

From then on, each message sent through Bitelio carries a valid DKIM signature—with zero extra configuration on your side.

4

### Verification & Monitoring

Bitelio confirms your records resolve correctly and keeps watching the authentication status of your outgoing mail over time.

#### Ready in Minutes

The typical Bitelio user finishes their DKIM setup in about 5-10 minutes, with the dashboard walking them through each step along the way.

## DKIM Best Practices

### ✓ Use 2048-bit Keys

1024-bit keys remain functional, but Gmail and other providers now recommend 2048-bit keys for their stronger cryptographic protection.

### ✓ Implement SPF and DMARC Too

On its own, DKIM covers only part of the picture. Pair it with SPF and cap the stack with DMARC to get full authentication coverage.

### ✓ Monitor DKIM Status

Make a habit of confirming your signatures still pass. Authentication reports, available on most sending platforms, make this straightforward.

### ✓ Rotate Keys Periodically

Swapping in fresh keys every 6-12 months limits your exposure if a key is ever compromised. Schedule rotations deliberately so delivery never skips a beat.

### ✗ Don't Share Private Keys

Handle the private key with the same care as a root password—never share it, and never store it anywhere insecure.

### ✗ Don't Use the Same Key Across Domains

Give every domain its own dedicated key pair. Reusing keys weakens security and muddies authentication across domains.

## DKIM vs SPF: What's the Difference?

Both protocols authenticate email, yet their mechanisms—and the questions they answer—are quite different:

| Feature | DKIM | SPF |
| --- | --- | --- |
| What it validates | Integrity of the message content | Whether the sending server is authorized |
| How it works | Cryptographic signature carried in headers | Delivering IP compared to a DNS allowlist |
| Survives forwarding | Yes (as long as content is untouched) | No (the forwarding IP won't match) |
| DNS record type | TXT at selector.\_domainkey.\* | TXT at the root domain |
| Required for DMARC | Yes (at least one of SPF/DKIM) | Yes (at least one of SPF/DKIM) |

#### Use Both for Maximum Protection

The two protocols cover each other's blind spots: SPF catches what DKIM can't (such as forged sending IPs), while DKIM keeps working through forwarding, where SPF falls apart. Run both, add DMARC on top, and your authentication story is complete.

## How to Test Your DKIM Setup

Once DKIM is configured, confirm everything works using one of these approaches:

### 1\. Check the Email Headers

Fire off a test message and inspect its raw headers. You're looking for the `DKIM-Signature` field plus the `Authentication-Results` field, which reports the pass/fail outcome:

Example Authentication-Results Header

```
Authentication-Results: mx.google.com;
  dkim=pass header.i=@yourdomain.com header.s=default header.b=GJwP3Qr8;
  spf=pass (google.com: domain of you@yourdomain.com designates 1.2.3.4 as permitted sender);
  dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=yourdomain.com
```

### 2\. Use DNS Lookup Tools

Query the DKIM TXT record directly to make sure your public key is live in DNS:

DNS Lookup Command

```
# Check your DKIM record via DNS
dig TXT default._domainkey.yourdomain.com

# Or using nslookup
nslookup -type=TXT default._domainkey.yourdomain.com
```

### 3\. Send to Gmail and Check

Deliver a test message to any Gmail inbox, open the three-dot menu, and choose "Show original". The summary panel at the top displays DKIM: PASS or DKIM: FAIL—instant confirmation of your setup.

#### Common DKIM Issues

When DKIM won't pass, verify that: (1) The selector in DNS matches the one your service signs with, (2) Your DNS provider hasn't truncated the record (very long keys sometimes need splitting), (3) Propagation has finished—allow up to 48 hours, and (4) The private key your service signs with corresponds to the published public key.

## Related Email Authentication Guides

- [What is SPF?](/guides/what-is-spf): How SPF records work alongside DKIM to verify senders.

- [What is DMARC?](/guides/what-is-dmarc): Everything about DMARC policies and domain protection.

- [Email Deliverability Guide](/guides/email-deliverability): Practical strategies for consistently reaching the inbox.

---

> Source: https://dev.bitelio.com/guides/what-is-dkim