1

Our sysadmin team edits the field Message-ID in exim4 header files (ending with -H) and substitues the first char after "<".

e.g:

077I Message-ID: <3D945239009B2549BFAE372F090AE90984E0882E7F@example.tld>

-->

077I Message-ID: <2D945239009B2549BFAE372F090AE90984E0882E7F@example.tld>

I'd like to write a script to release the mails. I changed the part between "<" and "@" in the field Message-ID and substituted a hash value so the Message-ID looks like:

077I Message-ID: <60decadf5f1da96ebb0d28a05def749be8303ad1@example.tld>

Now exim says "format error" in the log and the mail is not released. There was no change except for this one field.

Why can't the ID be substituted like that? Does it need to be the exact same length? It's exim4 version 4.69-2ubuntu0.3.

F12
  • 58
  • 4

2 Answers2

0

I would be surprised if your sysadmin team are mangling message-ids.

To release a frozen email you merely need to run exim with the -M option. This takes a list of exim message ids as shown by the mailq command. You can also get the message id by removing the -H from the header file name.

BillThor
  • 27,354
  • 3
  • 35
  • 69
  • The messages are not frozen by exim, they are in quarantine by Mailscanner (false positive). – F12 Jun 06 '12 at 06:50
0

See the "077I" at the start of the line? The "I" is a header flag, you shouldn't be changing that. But the "077" is the number of bytes in that header. Since you are changing the number of characters without changing the count, Exim sees it as a format error.

From http://exim.org/exim-html-current/doc/html/spec_html/ch55.html:

A header may occupy several lines of the file, and to save effort when reading it in, each header is preceded by a number and an identifying character. The number is the number of characters in the header, including any embedded newlines and the terminating newline.

Update the number to reflect the new number of characters and you should be fine.

jj33
  • 11,038
  • 1
  • 36
  • 50