Update: because https://mmmservices.web.cern.ch/mmmservices/Antispam/DomainKeysLibrary.aspx can not be accessed now, so please visit here to review the article and download the source code.
Today I found some one ask how to implement Yahoo DomainKeys on MS Exchange 2003, and I told him to find answer from her
https://mmmservices.web.cern.ch/mmmservices/Antispam/DomainKeysLibrary.aspx
CERN DomainKeys Library is written in C#, for a Windows usage.
Common task is to integrate this library into Protocol Event Sinks, implementing ISmtpInCommandSink interface, for incoming traffic verification and outgoing traffic signing.
An ISmtpServerResponseSink Sink might also be used for signing outgoing traffic.
It uses a certificate generated by OpenSSL, and imported in LocalMachine certificate store. The public key is extracted using OpenSSL for DNS field.
if you want solution for other smtp server, please follow this link,
http://domainkeys.sourceforge.net/
P.S.
a little knowledge about Yahoo DomainKeys
Introduced by Yahoo! Inc., the idea is to sign and verify mails at gateway level, using a public key found in DNS for verification.
The idea is to verify that the mail really comes from the official server handling this email address, to be sure it is not a forged email.
See http://antispam.yahoo.com/domainkeys for details and specification.