Hello,

I'm trying to debug one issue with the milter interface in Postfix. I
want to remove multiple headers with the same name, for example:

X-Spam-Flag: No
X-Spam-Flag: No
X-Spam-Flag: Not really
X-Spam-Flag: No

To do that, I track headers on header phase and track numbers for each
header. For this particular sample, I will have some map like
`X-Spam-Flag = 4`.

After end-of-data stage, I send multiple `CHGHEADER` ('m') commands with
header value equal to a empty string:

change/insert header command pos = 1 - "X-Spam-Flag"=""
change/insert header command pos = 2 - "X-Spam-Flag"=""
change/insert header command pos = 3 - "X-Spam-Flag"=""
change/insert header command pos = 4 - "X-Spam-Flag"=""

Literally, my code (Rspamd) sends CHGHEADER command 4 times. After
message being processed, I can see that Postfix removes 2 of 4
`X-Spam-Flag` headers.

I have tested something else after that. I have tried to add more
headers where names are equal and non equal. It seems that all odd
headers are not removed.

For example:

Input:

X-Spam-Flag: Test1
X-Spam-Flag: Test2
X-Spam-Flag: Test3
X-Spam-Flag: Test4

Output:

X-Spam-Flag: Test2
X-Spam-Flag: Test4

Input:

X-Spam-Flag: No
X-Spam-Flag: No
X-Spam-Flag: No
X-Spam-Flag: No
X-Spam-Flag: No
X-Spam-Flag: No

Output:

X-Spam-Flag: No
X-Spam-Flag: No
X-Spam-Flag: No

Am I doing something wrong from my side or it is some issue in the
Postfix? I'm using Postfix 3.1.0 but I can try other MTA or other
Postfix version if there is no visible issue from my side.

Reply via email to