Hi, i`m trying to reject messages bigger then MAX_MESSAGE_SIZE.
I configured my Hold.py was described bellow: replaced hold_for_approval(mlist, msg, msgdata, _ MessageTooBig(bodylen,_mlist.max_message_size)) with rej = MessageTooBig(bodylen, mlist.max_message_size) _ raise Errors.RejectMessage, rej.reason_notice_ The message was rejected, but the sender dont receive any notify about that. The mailman vette log too. How can i solve this? Thanks, André Dennis Putnam wrote: > >I am getting back to this and I have a question about maintenance. What >is the correct way to modify this so that it will not get destroyed by >updates? There are two ways to proceed. You can modify Mailman/Handlers/Hold.py itself, but before overwriting it, make a "diff -u" between the base Hold.py and your modified version to use as a patch to apply after any upgrade. A better way is to leave Hold.py unchanged and make your own edited version as say Mailman/Handlers/MyHold.py. Then you can replace the base Hold.py Module with your MyHold.py by putting GLOBAL_PIPELINE[GLOBAL_PIPELINE.index('Hold')] = 'MyHold' in mm_cfg.py. Note that if you are going to do this, and you want also to move MimeDel before Hold, you must either put the above line after the lines GLOBAL_PIPELINE.remove('MimeDel') GLOBAL_PIPELINE.insert(GLOBAL_PIPELINE.index('Hold'), 'MimeDel') in mm_cfg.py or put it before, but then also change GLOBAL_PIPELINE.insert(GLOBAL_PIPELINE.index('Hold'), 'MimeDel') to GLOBAL_PIPELINE.insert(GLOBAL_PIPELINE.index('MyHold'), 'MimeDel') I recommend the former as in # # Put MimeDel ahead of Hold so "too big" is based on content filtered # message. # GLOBAL_PIPELINE.remove('MimeDel') GLOBAL_PIPELINE.insert(GLOBAL_PIPELINE.index('Hold'), 'MimeDel') # # Replace Hold with local version # GLOBAL_PIPELINE[GLOBAL_PIPELINE.index('Hold')] = 'MyHold' Since mm_cfg.py survives upgrades, this should survive. >Also does this same procedure apply to other automatic rejections such >as implicit destination? >On 9/24/2012 8:43 PM, Mark Sapiro wrote: >> >> To automatically reject or discard messages that exceed the list's size >> limit, find the section of the Mailman/Handlers/Hold.py that ends with >> the lines >> >> >> if bodylen/1024.0 > mlist.max_message_size: >> hold_for_approval(mlist, msg, msgdata, >> MessageTooBig(bodylen, >> mlist.max_message_size)) >> # no return >> >> (there is one wrapped line in the above) and replace >> >> hold_for_approval(mlist, msg, msgdata, >> MessageTooBig(bodylen, >> mlist.max_message_size)) >> >> with >> >> rej = MessageTooBig(bodylen, mlist.max_message_size)) >> raise Errors.RejectMessage, rej.reason_notice >> >> to reject the message or with >> >> raise Errors.DiscardMessage >> >> to discard the message. Note that this will not honor the list's >> forward_auto_discards setting. to do that you would need to put >> >> from Mailman.Handlers.Moderate import do_discard >> >> with the other imports near the beginning of the >> Mailman.Handlers.hold.py module and then replace the lines with >> >> do_discard(mlist, msg) Yes, similar changes would apply to other holds in Hold.py. -- Mark Sapiro <mark at msapiro.net [1]> The highway is for gamblers, San Francisco Bay Area, California better use your sense - B. Dylan -- Links: ------ [1] http://mail.python.org/mailman/listinfo/mailman-users ------------------------------------------------------ Mailman-Users mailing list Mailman-Users@python.org https://mail.python.org/mailman/listinfo/mailman-users Mailman FAQ: http://wiki.list.org/x/AgA3 Security Policy: http://wiki.list.org/x/QIA9 Searchable Archives: http://www.mail-archive.com/mailman-users%40python.org/ Unsubscribe: https://mail.python.org/mailman/options/mailman-users/archive%40jab.org