Usage Guide
Using the tool
From downloading your CSV out of AWS to importing the zone file into Cloudflare — here's everything you need.
Step by step
How to use it
01
Export DNS records from AWS SES
In the AWS Console, go to
Amazon SES → Configuration → Identities
and select your domain. Open the
Authentication
tab, scroll to the
DomainKeys Identified Mail (DKIM)
section, and expand
Publish DNS records
. Click
Download .csv record set
at the bottom of that section.
This works the same whether the domain is already verified or newly added.
This works the same whether the domain is already verified or newly added.
02
Load the CSV
Open the tool at
ses-dkim-to-cloudflare.pages.dev
. Drag and drop your CSV onto the dropzone, or click it to browse.
Once loaded, the dropzone border turns green and shows the filename. The tool parses the file immediately — no button press needed.
Once loaded, the dropzone border turns green and shows the filename. The tool parses the file immediately — no button press needed.
03
Review the parsed records
A table appears showing all parsed DNS records grouped by type with a count chip per group. Verify the
detected domain matches your SES identity. Any validation errors appear as a red status bar above the
table.
04
Download the zone file
Click
Download Zone File
. The file saves as
To load a different file, click Change file inside the dropzone.
cloudflare-dns-import-[your-domain].txt
— a BIND-format zone file ready to import into Cloudflare.
To load a different file, click Change file inside the dropzone.
05
Import into Cloudflare
In the Cloudflare dashboard, select your domain, go to
DNS → Records
, and click
Import DNS records
. Upload the
.txt
file — Cloudflare will preview records before confirming. See the
Output page
for a full import walkthrough.
CSV Format
Expected input format
The tool expects the standard AWS SES DNS records CSV — a header row with these three columns in any order:
| Column | Required | Description |
|---|---|---|
Type |
Yes |
DNS record type — e.g.
CNAME
,
TXT
,
MX
|
Name |
Yes |
Fully-qualified record name — e.g.
abc123._domainkey.example.com
|
Value |
Yes |
Record value or target — e.g.
abc123.dkim.amazonses.com
|
A sample file:
dkim-dns-records.csv
CSV
Type,Name,Value CNAME,zey4t3k72nvkphf3xtxycmlpbd2mrylz._domainkey.example.com,zey4t3k72nvkphf3xtxycmlpbd2mrylz.dkim.amazonses.com CNAME,2wozuadye6pgxp5pvr7ov6gkvqikt6ca._domainkey.example.com,2wozuadye6pgxp5pvr7ov6gkvqikt6ca.dkim.amazonses.com CNAME,zvtgr4yut5ntwyzsrzhy7ztbfa4ewdlo._domainkey.example.com,zvtgr4yut5ntwyzsrzhy7ztbfa4ewdlo.dkim.amazonses.com
Domain detection
works by extracting the domain from the
Name
column — it strips the
_domainkey
prefix to find the root domain (e.g.
example.com
).
Validation
Errors and edge cases
| Scenario | Behaviour |
|---|---|
Missing required column (
Type
,
Name
, or
Value
)
|
Red error banner shown. No output generated. |
| Empty file or no data rows | Error shown — "no records found". |
| Unrecognised record types | Passed through as-is — the tool does not filter by type. |
| Extra columns in the CSV |
Ignored. Only
Type
,
Name
, and
Value
are used.
|
| Records from multiple domains | All included. Domain in header taken from the first record. |
| Non-CSV file dropped |
Parse error shown. Only
.csv
files are expected.
|