On Mon, 22 Nov 2004 11:03:19 +0000 (GMT) Philip Hazel <ph10@???> wrote:
> On Mon, 22 Nov 2004, Philip Chambers wrote:
>
> > I have started to see messages arriving with blank Message-ID: headers and there
> > appears to be a bug in exim's handling of them.
> >
> > exim is adding its own Message-ID: header as one would expect, but it is not
> > removing the original blank one, so we end up with two Message-ID: headers, which
> > results in an invalid header.
> >
> > Is there a quick fix I can put in my configuration or do I need a fix for the code?
>
> Exim should add a Message-ID: header only if there is NO such header in
> the message. It won't disturb an existing header, even if it is blank.
> Furthermore, it only adds a Message-ID: header if the message is locally
> submitted or if "submission mode" has been selected. (I'm talking about
> the latest release, of course.)
>
> I have just run a test, submitting a local message with an empty
> Message-ID: header. Exim did nothing to it.
>
> So, the question is, what is happening in your case? Which release of
> Exim? Is your configuration trying to do things with Message-ID
> manually? Note that if you have something like
>
> ${if eq{Message-ID:}{}{....
>
> it won't distinguish between an empty Message-ID: and a non-existent
> one. You need to use ${if def:h_message-ID: to check for existence.
>
I had checked my configure file before posting to see if I was doing anything myself
and there is nothing in there. Following what you said I tried some testing myself
and found it was my system which was adding a duplicate.
I have now tracked it down and find I am adding the line in my system filter! This
dates back a long time.
As far as I can see I cannot do this correctly in my system filter because there is
no def:h_message-id: condition in a system filter.
I suppose I should now be doing this in my acl_smtp_data ACL where I do have the
def: test which I could use in a reject section and I can add my own Message-id: in
a warn section.
I anyone already doing this, to save me working it out for myself?
I wonder if we should be able to have exim do a full header syntax check. I already
do a verify = header_syntax, but that is a bit of a misnomer since it only checks
headers which contain addresses. Perhaps Message-id: should be added to verify =
header_syntax because it has an e-mail address syntax.
Phil.
---------------------------------------
Phil Chambers (postmaster@???)
University of Exeter