Hello,


We are using sieve filter to redirect incoming mails to an external mailbox (gmail) an we are seeing some forwarded e-mails being rejected by gmail because of duplicate headers.


I think was able to identify the probable cause of the duplicate headers:

It seems that when the original message's "Message-ID" is not compliant, pigeonhole acts like if the header is not existing and adds it's own Message-ID.


This result in having two "Message-ID" headers being submitted to the destination mail server.


Original Message-ID:

Message-ID: 1883biz_pay_after_purchase:0:0_572392900$ae7ed6e4d53b424c84aaf83b30c507e7


Pigeon hole adds his own Message-ID:

Message-ID: <dovecot-sieve-1664386049-21512-0@510faa1ff2d9>


Gmail answer:

  550-5.7.1 [94.103.100.17]  Our system has detected that this message is not RFC

  550-5.7.1 5322 compliant: duplicate headers. To reduce the amount of spam sent

  550-5.7.1 to Gmail, this message has been blocked. Please review

  550 5.7.1  RFC 5322 specifications for more information.


While I understand the original "Message-ID" seems to be all but compliant with RFCs, shouldn't a "Message-ID" be added only when "Message-ID" is really missing ?

When redirecting a message, If the original "Message-ID" exists but is bogus shouldn't it still be forwarded untouched ?


Also, maybe if pigeonhole is adding it's own "Message-ID", shouldn't it remove any previous "Message-ID" to avoid generating duplicate headers ? (but maybe it could break some DKIM stuff?)


Any ideas how to workaround this issue ?


Thanks a lot for your feedbacks!


Sébastien RICCIO

SYSTEM ADMINISTRATOR

P  +41 840 888 888

F  +41 840 888 000

M sriccio@swisscenter.com