[Mailman-Developers] New RFC on using DKIM with MLMs

Patrick Ben Koetter p at state-of-mind.de
Wed Oct 26 17:33:45 CEST 2011


I searched mailman 2.1.14 sources and changelog to find out what they stand
for. Read below. Which could/should we replace with already existing
standardized headers?

* Ian Eiloart <iane at sussex.ac.uk>:
> On 25 Oct 2011, at 02:04, Barry Warsaw wrote:
> 
> > On Oct 13, 2011, at 11:41 PM, Murray S. Kucherawy wrote:
> > 
> >> There's movement afoot to deprecate use of "X-" in header field names.  Just
> >> call it "Mailman-Topic".  And if it's worthwhile, consider registering it
> >> with IANA.
> > 
> > I wonder if we should remove the X- prefixes for Mailman 3.  Here's a list of
> > ones we still add or recognize (some might be used only in the test suite):
> > 
> > X-Message-ID-Hash
> 
> This could be replaced with DKIM sigs, I guess.
> 
> > X-Mailman-Rule-Hits
> > X-Mailman-Rule-Misses
> 
> This might be useful for diagnostics, but probably wants to be off in
> general. My view is that Mailman should not be doing message filtering.

Are they related to SpamAssassin filtering that can take place in MM?


> > X-BeenThere
> 
> I guess that's useful for avoiding list loops, perhaps?

>From Mailman/Handlers/CookHeaders.py:

    # Mark message so we know we've been here, but leave any existing
    # X-BeenThere's intact.


> > X-Mailman-Version
> 
> I think this should be replaced with X-Mailer, or even User-Agent. That's
> not currently an SMTP header, but I think it should be. And it is in quite
> widespread use.

>From Mailman/Handlers/CookHeaders.py:

        msg['X-Mailman-Version'] = mm_cfg.VERSION

Seems to add the product version and not the User-Agent.


> > X-Mailman-Approved-At

>From Mailman/ListAdmin.py:

            # Queue the file for delivery by qrunner.  Trying to deliver the
            # message directly here can lead to a huge delay in web
            # turnaround.  Log the moderation and add a header.
            msg['X-Mailman-Approved-At'] = email.Utils.formatdate(localtime=1)



> > X-Archive
> 
> Does this do the same as List-Archive?

Looks like a control feature for senders:

>From doc/mailman-admin.txt:

          Note that senders can control whether their own posts are
          archived, on an individual per-message basis. If the posted
          message has a X-No-Archive: header (regardless of value), or a
          X-Archive: header with a value of No (case insensitive), then
          the message will not be archived, although it will be treated
          as normal in all other ways.


>From the changelog:

        o When a moderated message is approved for the list, add an
          X-Mailman-Approved-At: header which contains the timestamp
          of the approval action (changed from X-Moderated: with a
          different format).

    - Honor "X-Archive: No" header by not putting this message in the
      archive.


> > X-No-Archive
> 
> What does this mean? 

Seems like a dupe from X-Archive:
>From the changelog:

        o Just the mere presence of an X-No-Archive: is enough to
          inhibit archiving for this message; the value of the header
          is now ignored.


> > X-Ack

>From the changelog:
    - Autoresponses, -request command responses, and posting hold
      notifications are inhibited for any message that has a
      Precedence: {bulk|list|junk} header.  This is to avoid mail
      loops between email 'bots.  If the original message has an
      X-Ack: yes header, the response is sent.

> > X-No-Ack

Is this still being used?

Nothing in the changelog
Nothing in the mailman-2.1.14 sources.

> > X-Peer

Is this still being used?

Nothing in the changelog
Nothing in the mailman-2.1.14 sources.

> > X-MailFrom

Is this still being used?

Nothing in the changelog
Nothing in the mailman-2.1.14 sources.

> > X-RcptTo

Is this still being used?

Nothing in the changelog
Nothing in the mailman-2.1.14 sources.

> Isn't that usually in the Received header?
> 
> > X-Originally-To
> 
> Doesn't that do the same thing as List-post?

Seems like a copy of Postfix' X-Original-To-header. Is it?

>From cron/gate_news:

                   del msg['X-Originally-To']
                   msg['X-Originally-To'] = msg['To']


> > X-Original-CC
> What's the purpose of including this?

>From Mailman/Defaults.py.in:

        # Next, these headers are left alone, unless there are duplicates in the
        # original message.  Any second and subsequent headers are rewritten to the
        # second named header (case preserved).
        NNTP_REWRITE_DUPLICATE_HEADERS = [
            ('to', 'X-Original-To'),
            ('cc', 'X-Original-Cc'),
            ('content-transfer-encoding', 'X-Original-Content-Transfer-Encoding'),
            ('mime-version', 'X-MIME-Version'),
            ]

> > X-Original-Content-Transfer-Encoding

>From Mailman/Defaults.py.in:

        # Next, these headers are left alone, unless there are duplicates in the
        # original message.  Any second and subsequent headers are rewritten to the
        # second named header (case preserved).
        NNTP_REWRITE_DUPLICATE_HEADERS = [
            ('to', 'X-Original-To'),
            ('cc', 'X-Original-Cc'),
            ('content-transfer-encoding', 'X-Original-Content-Transfer-Encoding'),
            ('mime-version', 'X-MIME-Version'),
            ]


> > X-MIME-Version

>From Mailman/Defaults.py.in:

        # Next, these headers are left alone, unless there are duplicates in the
        # original message.  Any second and subsequent headers are rewritten to the
        # second named header (case preserved).
        NNTP_REWRITE_DUPLICATE_HEADERS = [
            ('to', 'X-Original-To'),
            ('cc', 'X-Original-Cc'),
            ('content-transfer-encoding', 'X-Original-Content-Transfer-Encoding'),
            ('mime-version', 'X-MIME-Version'),
            ]


> > X-Mailman-Copy

Nothing in the changelog

>From templates/en/options.html:

        Avoid duplicate copies of messages?

        When you are listed explicitly in the To: or Cc: headers of a list
        message, you can opt to not receive another copy from the mailing
        list. Select Yes to avoid receiving copies from the mailing list;
        select No to receive copies.

        If the list has member personalized messages enabled, and you elect to
        receive copies, every copy will have a X-Mailman-Copy: yes header
        added to it.  

>From Mailman/Handlers/SMTPDirect.py:

        # We can flag the mail as a duplicate for each member, if they've
        # already received this message, as calculated by Message-ID.  See
        # AvoidDuplicates.py for details.
        del msgcopy['x-mailman-copy']
        if msgdata.get('add-dup-header', {}).has_key(recip):
            msgcopy['X-Mailman-Copy'] = 'yes'


> > X-List-Administrivia

>From the changelog:
          o X-List-Administrivia: is only added to messages Mailman
            creates and sends out of its own accord.

>From Mailman/Handlers/CookHeaders.py:

    # For internally crafted messages, we also add a (nonstandard),
    # "X-List-Administrivia: yes" header.  For all others (i.e. those coming
    # from list posts), we add a bunch of other RFC 2369 headers.




> List-help?
> 
> > X-Content-Filtered-By

Nothing in the changelog

>From Mailman/Handlers/MimeDel.py:

        # If we're left with only two parts, an empty body and one attachment,
        # recast the message to one of just that part



> > X-Topics

Nothing in the changelog

>From Mailman/Handlers/Tagger.py:

    # For each regular expression in the topics list, see if any of the lines
    # of interest from the message match the regexp.  If so, the message gets
    # added to the specific topics bucket.


> > X-Mailer
> 
> I think we should use User-Agent here. Thunderbird does, as do some other mail clients. Or, we should push for introduction of a List-Agent header.

Nothing in the changelog

Some references to code in Mailman/Bouncers/*
Dunno what it does.


> > X-List-Received-Date
> 
> Don't the Received headers carry this information?

>From the changelog:
          The archived copy of messages grows an X-List-Received-Date:
          header indicating the time the message was received by
          Mailman.


        # Always put an indication of when we received the message.

        Seems to decide where messages should be archived

> 
> > X-Approve

Nothing in the changelog

>From Mailman/Handlers/Approve.py:

    # See if the message has an Approved or Approve header with a valid
    # list-moderator, list-admin.  Also look at the first non-whitespace line
    # in the file to see if it looks like an Approved header.  We are
    # specifically /not/ allowing the site admins password to work here
    # because we want to discourage the practice of sending the site admin
    # password through email in the clear.


> > X-Approved

Nothing in the changelog

X-Approve dupe?

> Generally, I think we should avoid the use of headers that duplicate other
> existing headers. Where we want to add more information, then extend the
> List-* header set if the information might be generally useful for mailing
> list software. Otherwise, use X-Mailman-* (or even Mailman-*) so that people
> know where the header came from.

+1

p at rick

-- 
state of mind ()

http://www.state-of-mind.de

Franziskanerstraße 15      Telefon +49 89 3090 4664
81669 München              Telefax +49 89 3090 4666

Amtsgericht München        Partnerschaftsregister PR 563



More information about the Mailman-Developers mailing list