Usage Guide

Using the tool

From downloading your CSV out of AWS to importing the zone file into Cloudflare — here's everything you need.

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.
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.
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 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.

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 ).

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.