Mailman and silently discarded messages

Several times people told me that message sent to mailman list just disappears and never sent to its subscribers. All messages had attachements, mostly excel files and doc files.

While i was trying to send some file attached into mail list - it was ok. I reset all options that could affect to the safe values:

max_message_size: 0
max_days_to_hold: 5  <- hold before automatic discarding
default_member_moderation: no
member_moderation_action: hold
generic_nonmember_action: hold
forward_auto_discards: yes
require_excplicite_destination: no
max_num_recipients: 10

And after all this i got discarded message again:

Sep 04 23:33:45 2006 (99752) Message discarded, msgid:
 <01f701c6d061$67f01430$0dcc090a@foo.bar>

I found only one place where this even occurs - it's in Mailman/Queue/IncomingRunner.py, Class IncomingRunner, method _dopipeline. Here's the code fragment:

line sys.modules[modname].process(mlist, msg, msgdata) calls method process() of one of those handlers, located in Mailman/Handlers. I grep'ed that dir and found that only followin handlers raise Errors.DiscardMessage exception:

  • MimeDel.py
  • Moderate.py
  • Scrubber.py
  • SpamDetect.py
  • ToDigest.py
And seems like this problem has something to do with MimeDel.py:

In my case mlist.filter_action == 3 though. Anyway, I was wondered when i found mlist.filter_content set to 1. Though filter_mime_types was empty and xls/doc wasn't in filter_filename_extensions

Im not sure if i found the real reason of why message was discrded, but i set filter_action to 0. In this case, the handler won't process the message at all:

And just to make sure i will know the name of the handler which discard the message next time ( if this happens again), i added a bit more info to the logging string in _dopipeline method:

To be continued... :)