ScanMyPassKhat
Transactional email infrastructure
Khat sends from your own verified domains, signs every message with that domain's own DKIM key, and tells you what the receiving server said. Your IP, your reputation, no per-message fee.

to=<customer@gmail.com> relay=gmail-smtp-in.l.google.com[142.250.31.26]:25
250 2.0.0 OK dkim=pass spf=pass dmarc=pass delay=0.9s01
Add a domain and publish four records. Verification names the exact failure — a duplicate SPF record, a DKIM key that does not match, a lookup that timed out — instead of just refusing.
02
One POST. The API validates, checks the domain and your quota, writes the row and queues the job. It never waits for SMTP, because remote delivery takes seconds to minutes and that is not your request's problem.
03
Delivery is confirmed from the MTA's own log. Sent means our server accepted it; delivered means theirs did. Both are shown, because they are not the same claim.
04
Bounces are parsed to RFC 3464 and 5965, classified hard, soft or complaint, and hard failures are suppressed automatically. Replies arrive in an inbox you can read or receive by webhook.
Mail state is not a set of invented labels. It maps onto SMTP reply classes, which is how anyone reading a log already thinks. Khat shows the class, so you can tell at a glance whether something is still being retried or gone for good.


Turn receiving on for a domain, publish one MX record, and mail arrives in an inbox you can read — or as an email.received webhook. Attachments are kept, the original bytes are kept, and SPF, DKIM and DMARC results are reported for every message rather than filtered out of sight.
The default is a subdomain, not your apex — an MX record at the apex replaces wherever your mail currently goes, and that should never be a side effect of ticking a box.
Running your own mail server trades a per-message fee for work you now own. It is worth knowing which work before you start.
A new IP has none, and providers treat it accordingly. Volume ramps over two to three weeks. A shared pool like SES is warm on day one; that is the real thing you give up.
Most hosts block outbound 25 by default and Google Cloud never unblocks it. You also need to be able to set reverse DNS on the sending IP.
The logo beside a sender name is BIMI. It needs a trademark and a Verified Mark Certificate that costs four figures a year. Khat generates the record; it cannot make the certificate free.
Add a domain, publish four records, create a key. The docs are open — read them first if you prefer.