Looking at the spamass-milter source code I see this: if (assassin->numrcpt() == 0) { /* Send the envelope headers as X-Envelope-From: and X-Envelope-To: so that SpamAssassin can use them in its whitelist checks. Also forge as complete a dummy Received: header as possible because SA gets a lot of info from it.
This is what hides any other headers from SA's ALL-INTERNAL variable. I still don't understand why this milter has to forge headers and not let SA work on the actual ones. Elod G On 11/19/2015 11:31, Matus UHLAR - fantomas wrote: >> On 11/19/2015 10:59, Matus UHLAR - fantomas wrote: >>> From what I know, the locally added Received: header is not visible in >>> milter and the spamass-milter must fake it. Therefore, if Received-SPF >>> exists, the Received: is prepended before it, which explains the issue. > > On 19.11.15 11:15, Elod G wrote: >> So that's why I am seeing headers that are not present in the delivered >> e-mail. ALL-INTERNAL has three headers: a simple Received, an >> X-Envelope-To, and an X-Envelope-From. All three seem made up. >> What a dick move from spamass-milter's part. I have to read up on it >> a bit. > > I wouldn't say that... the spamass-milter does the only thing it can > do to > provide required information to SA... > > maybe the problem lies in the fact how milter was designed... >