It looks like that milter-protocol.txt document is slightly out of date, but it is otherwise pretty accurate.


The only other documentation I know of is the source code itself.  You’d have to trace it back into libmilter/mfdef.h to find out what each represents (they appear to be “skip” and “insheader”), and then for the format of the associated messages, check sendmail/milter.c to see how the MTA will decode them.


(I remember adding “insheader” myself when I still worked there, and “skip” came sometime later.)


From: Elanchezhiyan Elango []
Sent: Thursday, April 22, 2010 2:41 AM
To: dkim-milter general discussion
Subject: Re: [dkim-milter-discuss] dkim-milter protocol documentation


Hi Murray,


Thanks for the response. I did do a google search before posting. Most of the resources were about the libmiter package and developing milters using the milter API. I was interested in the actual communication between the MTA and a milter. Only related page I could find was,

However, as I mentioned earlier, the response commands such as 's', 'i' are not documented in this page. 


The wikipedia page ( does mentions that "documentation of the protocol used for communication between sendmail and milter processes is not provided. This internal protocol is subject to changes in new sendmail versions." Probably the responses I am receiving are introduced in later sendmail versions.


Any other relavent documentation you are aware of will be helpful.






On Wed, Apr 21, 2010 at 9:16 PM, Murray S. Kucherawy <> wrote:

A Google search for "milter protocol" produced some highly useful results.

You might also look at the "miltertest" tool in the OpenDKIM package.  It provides a scripting interface to do what you're after.
From: Elanchezhiyan Elango []
Sent: Wednesday, April 21, 2010 5:57 PM
Subject: [dkim-milter-discuss] dkim-milter protocol documentation


I am trying to write a script that would directly communicate to the dkim-filter process through its socket using the milter protocol. My script would essentially act like sendmail. In the process I am finding some responses whose meaning I am not aware of. For example I get responses with command 's', 'i' which don't seem to be documented as a part of milter protocol. Is there a place where I can find the meaning of these response commands from dkim-milter?


dkim-milter-discuss mailing list