How to Configure DKIM, SPF, and DMARC Records for a Zimbra Server
DKIM, SPF, and DMARC solve three different parts of outbound email authentication, and a reliable Zimbra deployment needs them to work together. SPF tells receivers which systems are allowed to send with your envelope domain. DKIM adds a cryptographic signature tied to a domain. DMARC checks whether a passing SPF or DKIM identity aligns with the domain visible in the message's From header, then publishes a handling and reporting policy.
One current standards detail matters here: as of October 2026, the active DMARC protocol specification is RFC 9989, published in May 2026. It obsoletes the older RFC 7489 and changes some deployment details, including making the old pct tag historic and introducing the t testing tag. That is important if you are copying an older DMARC example from a previous Zimbra guide or DNS tutorial.
What you need before changing DNS
You need administrative shell access to a Zimbra MTA, access to the authoritative public DNS zone for your sending domain, and a complete list of every system that legitimately sends mail using that domain. That list may include your Zimbra server, a relay or smart host, marketing platforms, ticketing systems, cloud applications, and any disaster-recovery mail service.
A common misunderstanding is that publishing records for the Zimbra host alone is always enough. It is only enough when Zimbra is truly the only authorized sender. SPF is evaluated against the SMTP identity, and DMARC can expose forgotten third-party senders once enforcement is enabled. Action: inventory all outbound sources before you publish a restrictive SPF or DMARC policy.
Confirm the Zimbra hostname, hosted mail domain, and public DNS mapping before building SPF, DKIM, or DMARC records.
Step 1: Generate the DKIM key in Zimbra
Zimbra includes the zmdkimkeyutil utility for domain-level DKIM signing. Zimbra's official documentation says to run it on an MTA server. To add DKIM data for a domain that does not already have it, switch to the Zimbra account and run:
su - zimbra
/opt/zimbra/libexec/zmdkimkeyutil -a -d example.com
The command stores the DKIM data in Zimbra's LDAP domain entry and prints the selector and public TXT record you need to publish. Zimbra's DKIM signing documentation also documents -q to query existing DKIM data, -u to update it, and -r to remove it.
For modern Zimbra installations, the output may differ in exact selector value from examples you see online. The selector is not supposed to be a fixed word such as default or zimbra; use exactly the selector that your own server prints. Action: copy the entire public-key record from your command output rather than reconstructing it manually.
Run Zimbra's DKIM utility on an MTA and use the selector and public key it actually returns for your domain.
Step 2: Publish the DKIM TXT record
DKIM verifiers look up the public key in DNS under a name built from the selector and ._domainkey. The mechanism is defined in RFC 6376. In practical DNS-provider terms, the record usually looks like this:
Field
Example
Type
TXT
Name
YOUR_SELECTOR._domainkey
Value
v=DKIM1; k=rsa; p=YOUR_PUBLIC_KEY
Whether you enter only YOUR_SELECTOR._domainkey or the full YOUR_SELECTOR._domainkey.example.com depends on your DNS control panel. Some providers automatically append the zone name. Action: preview the final fully qualified record name in your provider before saving so you do not accidentally create ...example.com.example.com.
Publish the DKIM selector under _domainkey and paste the complete public key produced by Zimbra.
Step 3: Create one SPF TXT record for the sending domain
SPF is published as a DNS TXT record at the domain whose sending authorization you want to describe. RFC 7208 requires TXT records for SPF and says that multiple SPF records at the same owner name produce a permanent error. In other words, do not create a second v=spf1 TXT record just because you add another mail service.
If your Zimbra server sends directly from one stable public IPv4 address, a minimal example is:
v=spf1 ip4:203.0.113.10 -all
If all hosts referenced by your domain's MX records are legitimate outbound senders, you might use mx; if a third-party service publishes an SPF include domain, you may need an include: mechanism. The exact record is deployment-specific, so there is no single universally correct Zimbra SPF string.
Another common mistake is assuming ~all is always safer than -all. The real question is whether your authorized-sender inventory is complete. A strict -all is reasonable when it is. Action: authorize every legitimate sender in one SPF record, verify it in production, then choose the final all qualifier based on that evidence.
Keep SPF reasonably simple. RFC 7208 limits mechanisms and modifiers that trigger DNS lookups to 10 during evaluation; exceeding the limit can result in permerror. Action: count includes and other DNS-expanding mechanisms before adding another vendor.
A simple direct-sending setup can authorize the Zimbra public IP in a single SPF TXT record; add other legitimate senders only when your environment requires them.
Step 4: Publish DMARC in monitoring mode first
DMARC policy is published at _dmarc.example.com. A cautious first record is:
p=none asks receivers not to change handling based on the DMARC policy while you collect data. The rua address requests aggregate reports; the current aggregate-report format is specified by RFC 9990. Use a mailbox or reporting service capable of processing DMARC reports rather than an unattended personal inbox.
Ne copiez pas aveuglément pct=10les pct=25exemples de déploiement présentés dans d'anciens articles. La RFC 9989 est considérée comme pcthistorique, car l'expérience opérationnelle a révélé une application incohérente. La norme actuelle utilise t=ydes tests de comportement lorsque cela s'avère nécessaire. Action : commencez par p=noneanalyser les rapports ; ne vous fiez pas à un échantillonnage en pourcentage comme mécanisme de sécurité.
Commencez par un enregistrement de surveillance DMARC _dmarcafin de pouvoir identifier les véritables sources d'envoi avant de demander une mise en quarantaine ou un rejet.
Étape 5 : Vérifiez les trois enregistrements dans le DNS public
Une fois les enregistrements publiés par le fournisseur DNS, interrogez-les depuis l'extérieur du serveur faisant autorité ou depuis un résolveur qui accède au DNS public. Par exemple :
Pour SPF, vérifiez qu'une seule réponse TXT commençant par « example.com » v=spf1existe pour ce nom de propriétaire. Pour DKIM, vérifiez que le sélecteur correspond exactement à la valeur actuellement stockée par Zimbra. Pour DMARC, vérifiez qu'il existe un seul enregistrement de stratégie DMARC utilisable au nom attendu.
La propagation DNS dépend de votre fournisseur, du TTL et du cache du résolveur. Une modification affichée immédiatement sur un serveur de noms faisant autorité peut encore être en cache ailleurs. Action : effectuez un test auprès d’au moins un résolveur public indépendant avant d’incriminer Zimbra pour une réponse obsolète.
Utilisez des requêtes DNS indépendantes pour vérifier que les enregistrements publics correspondent à la politique que vous aviez l'intention de publier.
Étape 6 : Envoyer un message réel et vérifier la conformité de l’authentification
Envoyez un message depuis le domaine Zimbra vers une boîte mail chez un autre fournisseur et examinez l'intégralité des en-têtes du message. En cas de succès, la signature DKIM et/ou le résultat SPF devraient être validés, ainsi que la validation DMARC, car au moins une identité authentifiée correspond au domaine d'envoi visible.
C’est là qu’une autre idée fausse apparaît : DMARC n’exige pas la réussite simultanée des vérifications SPF et DKIM. Il requiert soit une identité SPF alignée réussie, soit une identité DKIM alignée réussie. La RFC 9989 définit l’alignement relâché comme comportement par défaut pour les deux aspf, adkimbien qu’il soit possible d’exiger un alignement strict s. Action : inspectez Authentication-Resultset identifiez précisément le mécanisme qui assure la réussite de l’authentification DMARC alignée.
Un véritable test de livraison externe devrait montrer non seulement la réussite des tests SPF ou DKIM, mais aussi la réussite des tests DMARC pour le domaine From visible.
Étape 7 : Ne passez de la surveillance à l’application de la loi qu’une fois les rapports jugés conformes.
Une fois que vos données DMARC indiquent que les expéditeurs légitimes s'authentifient et s'alignent correctement, vous pouvez modifier la politique en « non authentifié » p=quarantineou, éventuellement, « non p=rejectauthentifié ». Dans la norme actuelle, les politiques « non authentifié » none, « non authentifiéquarantine » et «reject non authentifié » expriment l'évaluation du propriétaire du domaine concernant l'utilisation non authentifiée, mais les destinataires conservent la possibilité de gérer localement les envois.
Ne pas considérer p=rejectDMARC comme une optimisation de la délivrabilité. DMARC est avant tout un système d'authentification et de contrôle des abus de domaine ; il ne rend pas automatiquement les courriels souhaités dignes de confiance et ne garantit pas leur arrivée en boîte de réception. Action : faire de l'application de DMARC une décision de sécurité fondée sur une couverture d'authentification cohérente, et non sur la promesse d'un meilleur taux de réception.
Étape 8 : Faites tourner les clés DKIM sans supprimer immédiatement l’ancien enregistrement DNS
Pour mettre à jour les données DKIM d'un domaine, consultez la documentation Zimbra :
Cette commande met à jour les données DKIM et crée une nouvelle entrée DNS. Zimbra recommande de conserver l'enregistrement TXT précédent dans le DNS pendant un certain temps afin que les messages signés avec l'ancienne clé puissent être vérifiés lors de leur transmission ou de leur mise en file d'attente. Procédure : publiez d'abord le nouveau sélecteur, vérifiez-le, puis conservez temporairement l'ancien sélecteur avant de le supprimer.
Lors de la rotation DKIM, publiez la nouvelle clé et conservez temporairement le sélecteur précédent afin que les anciens courriers signés puissent toujours être validés.
Guide de référence rapide : ce que chaque enregistrement prouve
Contrôle
Ce qu'il vérifie
Là où vous le configurez
Échec primaire à éviter
FPS
L'hôte expéditeur est-il autorisé pour l'identité SMTP ?
Enregistrement TXT DNS public
Enregistrements SPF multiples ou expéditeurs tiers manquants
DKIM
Si un message comporte une signature valide pour un domaine de signature
Génération de clés Zimbra et clé TXT DNS publique
Sélecteur incorrect ou clé publique tronquée
DMARC
Que SPF ou DKIM réussisse et s'aligne avec le domaine From
Enregistrement TXT DNS public à_dmarc
Appliquer la loi avant que les expéditeurs légitimes ne s'alignent
Vérifications spécifiques à Zimbra qu'il est utile d'effectuer
Les recommandations de Zimbra concernant la protection des e-mails précisent que le DKIM doit être généré pour chaque domaine et publié dans le DNS public de ce domaine. Elles documentent également les problèmes d'alignement pouvant survenir avec certains profils d'expéditeur ou le comportement des répondeurs automatiques sur les anciennes configurations. Ces détails sont contextuels et non universels : si votre déploiement utilise des alias, des profils d'expéditeur, des relais ou une réécriture d'enveloppe inhabituelle, testez ces chemins de messages séparément.
Pour une installation Zimbra multi-domaines, répétez la configuration DKIM et la publication DNS pour chaque domaine émetteur. SPF et DMARC sont également des politiques de domaine ; ne présumez pas qu'un enregistrement sur un domaine hébergé couvre automatiquement un autre domaine non lié. Action : créez une matrice de test réduite pour chaque domaine et chaque route sortante avant d'activer l'application stricte de DMARC.
Liste de contrôle de validation finale
Il existe exactement un enregistrement SPF commençant par v=spf1à chaque domaine d'envoi.
L'enregistrement SPF inclut toutes les routes sortantes autorisées et reste dans les limites de traitement DNS SPF.
Zimbra signe les courriers sortants avec le sélecteur enregistré pour ce domaine.
La clé publique DKIM correspondante est visible dans le DNS public sous selector._domainkey.
L'enregistrement DMARC TXT est publié à l'adresse _dmarc.domainet utilise la syntaxe actuelle.
Les messages de test externes indiquent une réussite SPF ou DKIM alignée et donc une réussite DMARC.
Les rapports agrégés sont examinés avant de passer de la surveillance à la mise en quarantaine ou au rejet.
Les anciens sélecteurs DKIM sont conservés temporairement pendant la rotation et supprimés seulement après la période de transition.
Si ces vérifications sont concluantes, votre serveur Zimbra ne se contente pas de publier trois enregistrements DNS ; il présente une chaîne d'authentification cohérente que les destinataires distants peuvent valider. Cette distinction est plus importante que la simple copie d'une chaîne d'exemple tirée d'un guide, car les sources SPF, le sélecteur DKIM et le moment d'application de DMARC appropriés dépendent de la manière dont vos courriels quittent réellement l'organisation.