Mailkit's default sending route handles SPF on its own envelope domain. To send with your own visible From domain, verify the sender address, publish its account-issued DKIM CNAME records, retain an appropriate DMARC policy and select the verified sender in your campaign. Do not automatically add an SPF include to your domain just because an older tutorial lists one. Mailkit's current authentication overview.
This guide covers the Mailkit email service at mailkit.com, not the unrelated .NET MailKit software library. Scope: native campaigns using provider-managed envelope SPF and aligned customer-domain DKIM. Custom return-path delegation, link branding, Omnivery and agency-interface changes are separate configurations.
On this page
- Confirm the sending route
- Verify the address and retrieve DKIM records
- Publish DNS without breaking other services
- Validate and select the campaign sender
- Understand SPF and preserve DMARC
- Prove the actual messages authenticate
- Troubleshooting and FAQs
- Sources and review limits
Confirm the sending route
Mailkit's February 2026 guide distinguishes default provider-domain SPF from optional customer-subdomain delegation. This article uses the default. SPF can pass for that provider identity without aligning to your visible From; aligned DKIM is therefore the required DMARC path here. Optional envelope delegation can help relaxed SPF alignment, but a child envelope domain does not automatically satisfy strict alignment. Current route distinction.
The separate SPF documentation gives broader include-based advice. Do not treat it as a requirement to modify apex SPF for a route whose evaluated envelope domain belongs to Mailkit. If your account uses a different approved route, obtain its exact current configuration rather than combining unrelated recipes. Do not remove an existing include that another legitimate route needs merely because this guide does not require it.
Before changing anything, identify the intended From domain, current mailbox provider and authoritative DNS host. Use an authorized mailbox you control and an account administrator for configuration. Editor and Publisher roles do not have basic account-settings access according to Mailkit's account documentation. Do not grant wider access merely to follow a tutorial; involve the existing administrator.
Verify the address and retrieve DKIM records
In My account, use Add address for the intended sender and name. Complete the confirmation link delivered to that mailbox. Mailbox confirmation, DKIM publication and DMARC configuration are separate gates. In the sender's displayed diagnostics, obtain the exact required DKIM records. The official sender-row illustration includes two account-specific DKIM CNAMEs and a Validate settings control; use your live account's full packet, not the illustration's values. If the packet is unavailable, stop and ask Mailkit support for it. Sender-address instructions and illustration.
Record each owner, type and target together. Do not infer a selector from a company name, copy another tenant's numeric selector suffixes or generate a key pair yourself. An owned mailbox does not establish that the service is signing for your domain.
The illustration also includes a separate domain-delegation recommendation. Do not treat every displayed suggestion as part of this narrow DKIM-only route. If you need custom envelope or tracking domains, assess their existing DNS dependencies and obtain a complete supported configuration before adding those aliases. Adding an optional domain delegation can change who controls routing or web destinations under those names.
Publish DNS without breaking other services
Use the authoritative DNS zone, not necessarily the company that sold your domain. Save the current records before approved changes. Copy each issued record's type, full owner and destination exactly. These are public DNS values; you should never need to publish a DKIM private key.
Check what your DNS editor appends. For the illustrative full owner selector._domainkey.example.org, an editor for the example.org zone may require only selector._domainkey. In a separately delegated _domainkey.example.org zone, the relative name is selector. These are owner-format examples, not provider selectors or records to publish. A child-zone delegation changes where records must be entered; preserve NS delegations and coordinate with their owner rather than deleting them.
An issued CNAME owner cannot also contain TXT, A, AAAA, MX or another CNAME. If an owner is occupied, investigate dependencies and request a supported alternative where possible; do not overwrite another sender's record. A CNAME destination is a hostname, not a URL, and its trailing-dot treatment depends on the DNS editor. Check the resulting public owner and target instead of trusting the input form alone.
For Cloudflare, authentication aliases should be DNS only, not HTTP-proxied. Where literal CNAME answers are required, turn the applicable per-record Flatten option off when available and ensure whole-zone flattening does not conceal those aliases. Do not disable a global setting without assessing other records and obtaining authorization. Apex flattening is automatic; same-zone targets can be flattened regardless of that setting. If mandatory behavior prevents the required alias answer, stop and coordinate a supported configuration rather than inventing a switch or moving a selector. See Cloudflare proxy status and CNAME flattening controls.
Validate and select the campaign sender
Use the account's Validate settings control after publication and resolve remaining diagnostics. The sender must be confirmed and its domain's DKIM and DMARC must be correct before it can be assigned to a campaign. A successful address-confirmation email alone is insufficient. Account validation requirements.
Open the intended campaign and choose the verified address in From. If it is missing, resolve address verification and domain DNS instead of choosing an unrelated sender. In Advanced settings, select reply handling deliberately: Mailkit documents a same-domain requirement for Reply-to, and recipient-level settings can affect which reply address is used. Reply routing does not change DMARC's evaluated From identity. Campaign sender and reply controls.
Do not assume a test-mode toggle means one message. Mailkit documents that campaign test mode redirects each recipient's message to the test address; a large recipient list can therefore produce many test messages. Use a controlled minimal test audience and authorized recipient rather than sending a production list into test mode.
Understand SPF and preserve DMARC
SPF evaluates the SMTP envelope sender, commonly reported as smtp.mailfrom, not automatically the visible From address. A custom routing subdomain and a visible sender domain are different identities. Do not add an apex SPF include merely because the service uses a particular delivery backend. Use only the actual account-issued configuration and investigate the received message's evaluated identity.
If an authorized setup requires an SPF TXT policy, keep one v=spf1 policy at that exact owner, preserving legitimate existing authorizations and qualifiers. The SPF limit is ten evaluated DNS-dependent terms, including nested mechanisms, not simply ten includes. A redirect is ignored when an all mechanism is present. Do not blindly merge or replace a policy, and do not treat a qualifier as a guarantee of delivery or rejection. SPF specification.
DMARC passes when either SPF or DKIM passes and aligns with the visible From. Relaxed alignment uses an Organizational Domain match; strict alignment requires an exact domain match. A child envelope domain may align in relaxed mode but not strict mode. A passing provider-domain signature that does not align is not enough. For the new branded DKIM route, require the intended provider signature to pass and align, even if SPF could independently yield a DMARC pass. Read DKIM alignment and the visible From domain and the current DMARC specification.
Preserve existing direct and applicable inherited DMARC policies and approved reporting destinations. Authentication setup is not permission to downgrade quarantine or reject to none. Only if no applicable policy exists, the owner approves, and a monitoring plan is in place, an initial TXT policy can be v=DMARC1; p=none at _dmarc beneath the actual From domain. For example.org, that full owner is _dmarc.example.org; for news.example.org, it is _dmarc.news.example.org. Enter names relative to the actual authoritative zone and publish only one policy at an owner. This minimal example sends no aggregate reports by itself.
Choose any report recipient deliberately. Compare the report destination with the domain where the DMARC policy was found, including when that policy is inherited. A destination in a different Organizational Domain from that policy domain requires the report-generating receiver to check DNS authorization; a destination within the same Organizational Domain as that policy domain is excepted. DNS authorization does not replace the owner's privacy and data-sharing approval. Do not copy a tutorial's reporting address. See RFC 9990, section 4.
Prove the actual messages authenticate
Provider verification checks DNS configuration. It is not proof that every message stream uses the intended signing domain. After configuration, an authorized administrator should test the actual application route with a controlled, valid recipient. This guide did not perform customer sends or change DNS.
Save the recipient's original message and use authentication results produced inside the actual receiving service's processing boundary. Consult that service's documented handling of externally supplied Authentication-Results, or obtain a receiving administrator's trace. A familiar authserv-id string or header position alone is not proof of authenticity. Ignore injected or otherwise untrusted result fields. Authentication-Results specification.
Record the visible From, envelope sender, intended DKIM signature's signing domain and selector, and the trusted receiver's SPF, DKIM and DMARC results. Acceptance requires the intended provider DKIM signature to pass and align with the intended From under the active alignment policy, plus a trusted receiver DMARC pass. A generic DMARC pass via SPF alone does not prove DKIM works. A rewritten provider From is not proof of brand-domain authentication.
Investigate SPF fail, temperror and permerror separately, even when aligned DKIM makes DMARC pass. Temporary errors suggest a transient lookup problem; permanent errors indicate a configuration/evaluation problem; neither should be silently marked passed. Test materially different sending paths separately. Authentication does not guarantee inbox placement, indexing or search rankings.
Troubleshooting and FAQs
What is the Mailkit SPF record for my domain?
For the default provider-envelope route in this guide, there is no automatic apex-SPF change. Confirm the actual SMTP envelope identity before deciding where SPF belongs. Do not confuse a visible From address with the Return-Path or copy corporate SPF records into your zone.
Why does the sender show verified but DKIM is red?
Mailbox confirmation and DNS authentication are separate. Inspect the displayed DKIM requirements and authoritative DNS. A confirmation link proves control of a mailbox, not possession of the signing key or correctness of a CNAME. Revalidate only after fixing the actual mismatch.
Can I paste the DKIM records shown in Mailkit's screenshot?
No. Example values identify a different configuration. Use every required record from your own account and domain. The illustration's sample domain wording is not consistent throughout, another reason to use its workflow cues rather than its literal data.
The CNAME exists in my DNS editor but validation fails
Check the public full owner, authoritative zone, exact destination, conflicting records, HTTP proxying and flattening. An editor may silently append a suffix. A private or inactive zone can show records that public receivers never see. Preserve delegations and other services while correcting the placement.
SPF passes but is not aligned. Is the setup broken?
Not necessarily on this default envelope route. Still require aligned DKIM and a trusted receiver DMARC pass. Report SPF authentication and SPF alignment separately; do not label them both passed because one passed. If both aligned authentication paths fail, the domain is not ready for this route.
Can a campaign use a different reply address?
Review the campaign's reply mode and any recipient-level override. Mailkit's campaign documentation requires a same-domain reply address. The selected mailbox must be authorized and monitored. Reply-To is not a workaround for a misaligned From domain.
Should I replace our DMARC record with the provider's example?
No. Preserve existing protection and approved reporting destinations. Changing reporting recipients shares operational data and needs the owner's approval. A generic monitoring example is not a reason to downgrade enforcement or install a second policy.
Should I delete an older DKIM selector after verification?
Not just because a new record validates. Other senders or queued messages may still depend on it. Keep the complete issued selector set and coordinate retirement or rotation with the responsible service. Verification does not establish that an unrelated older key is unused.
DNS checks pass, but real messages fail
Use receiver-generated evidence from the actual Mailkit campaign path. Compare the intended From and DKIM signing domains, inspect route changes or forwarding, and retain the exact error result. Send support only necessary sanitized evidence through an approved channel; do not share private keys, passwords or unrelated recipient data.
Sources and review limits
- My account: sender settings and roles, including the inspected sender-record illustration.
- Email campaigns: From, Reply-to and test mode.
- Deliverability 101, Part 1, February 26, 2026.
- SPF records, considered alongside the route-specific current overview rather than applied indiscriminately.
This article is based on source-document and illustration review, not customer-account testing. No account settings, DNS records, messages, campaign launches or publication were changed or tested. Live website rendering and search visibility are not established by this manuscript.