Verify Message
Verifies the DKIM signature of a MIME message.
Code
using DRIT.Mail.Rfc.Dkim;
using DRIT.Mail.Rfc.Mime;
MimeMessage message = MimeMessage.Load("signed.eml");
var resolver = new DkimDnsKeyResolver();
var verifier = new DkimVerifier(resolver);
DkimVerificationResult result = verifier.Verify(message);
Console.WriteLine($"Status: {result.Status}");
Console.WriteLine($"Domain: {result.Domain}");
Console.WriteLine($"Selector: {result.Selector}");
Console.WriteLine($"Algorithm: {result.SigningAlgorithm}");
if (result.Status == DkimVerificationStatus.Valid)
{
Console.WriteLine("The DKIM signature is valid.");
}
else
{
Console.WriteLine($"Verification failed: {result.Status}");
}
Remarks
DkimVerifier resolves the public key from DNS via IDkimKeyResolver. The
default DkimDnsKeyResolver performs live DNS lookups; supply a custom
resolver for testing or offline scenarios.