============= Administrivia ============= The `administrivia` rule matches when the message contains some common email commands in the ``Subject:`` header or first few lines of the payload. This is used to catch messages posted to the list which should have been sent to the ``-request`` robot address. >>> mlist = create_list('_xtest@example.com') >>> mlist.administrivia = True >>> rule = config.rules['administrivia'] >>> print(rule.name) administrivia For example, if the ``Subject:`` header contains the word ``unsubscribe``, the rule matches. >>> msg_1 = message_from_string("""\ ... From: aperson@example.com ... Subject: unsubscribe ... ... """) >>> rule.check(mlist, msg_1, {}) True Similarly, if the body of the message contains the word ``subscribe`` in the first few lines of text, the rule matches. >>> msg_2 = message_from_string("""\ ... From: aperson@example.com ... Subject: I wish to join your list ... ... subscribe ... """) >>> rule.check(mlist, msg_2, {}) True In both cases, administrivia checking can be disabled. >>> mlist.administrivia = False >>> rule.check(mlist, msg_1, {}) False >>> rule.check(mlist, msg_2, {}) False To make the administrivia heuristics a little more robust, the rule actually looks for a minimum and maximum number of arguments, so that it really does seem like a mis-addressed email command. In this case, the ``confirm`` command requires at least one argument. We don't give that here so the rule will not match. >>> mlist.administrivia = True >>> msg = message_from_string("""\ ... From: aperson@example.com ... Subject: confirm ... ... """) >>> rule.check(mlist, msg, {}) False But a real ``confirm`` message will match. >>> msg = message_from_string("""\ ... From: aperson@example.com ... Subject: confirm 12345 ... ... """) >>> rule.check(mlist, msg, {}) True We don't show all the other possible email commands, but you get the idea. Non-administrivia ================= Of course, messages that don't contain administrivia, don't match the rule. >>> msg = message_from_string("""\ ... From: aperson@example.com ... Subject: examine ... ... persuade ... """) >>> rule.check(mlist, msg, {}) False Also, only ``text/plain`` parts are checked for administrivia, so any email commands in other content type subparts are ignored. >>> msg = message_from_string("""\ ... From: aperson@example.com ... Subject: some administrivia ... Content-Type: text/x-special ... ... subscribe ... """) >>> rule.check(mlist, msg, {}) False