summaryrefslogtreecommitdiff
path: root/Mailman/Queue (follow)
Commit message (Collapse)AuthorAgeFilesLines
* _oneloop(): Include a clue as to which filebase is being shunted.bwarsaw2002-12-131-0/+1
|
* Donn Cave's patch #602087 to honor configure's --srcdir switch.bwarsaw2002-12-121-1/+1
|
* _dispose(): Actually (re-)implement the documented behavior for whenbwarsaw2002-12-021-0/+5
| | | | autorespond_requests == 1, which means answer and discard.
* _dispose(): Don't forward to the admin, messages in which bouncingbwarsaw2002-12-021-1/+1
| | | | | addresses were found, but for which those addresses were not members. This is just annoying.
* Results.__init__(): Add a `respond' flag which is used bybwarsaw2002-11-211-1/+5
| | | | | | | | | send_response() to enable or suppress confirmation responses. For example, when confirming a subscription, if a welcome message is going to be sent out, we don't need to also send a results of the confirmation message. send_response(): Suppress the response if the `respond' flag is false.
* dequeue(): "rejection-notice" (i.e. the dash) doesn't play nice whenbwarsaw2002-11-191-0/+6
| | | | | | METADATA_FORMAT = METAFMT_ASCII. Because of patch #567288 by Maximillian Dornseif, we have to upgrade the schema of any metadata files (i.e. rejection-notice -> rejection_notice).
* Results.__init__(): Give default argument of an empty string whenbwarsaw2002-11-081-1/+1
| | | | | | | pulling the Subject out of the command message. That's so later (e.g. in cmd_confirm.py) we won't try to .lower() a None. Closes SF bug report # 620032 by Ron Jarrell.
* Style.bwarsaw2002-11-041-1/+1
|
* _dispose(): I think this fixes a bug we are seeing on mailman-users,bwarsaw2002-10-291-5/+10
| | | | | | | | | where if the list lock couldn't be obtained, we couldn't register the bounce and the message would get forwarded to the list owners. Instead, let's just requeue it and try again later. Note: untested! I'm checking this into cvs so I can test it on python.org... yes on a live system. ;/
* maybe_forward(): Add a useful URL as suggested by Fil.bwarsaw2002-10-251-0/+4
|
* send_response(): We have to pass the language into thebwarsaw2002-10-211-1/+2
| | | | UserNotification!
* maybe_forward(): Improve the grammatically anti-good message sent withbwarsaw2002-10-211-3/+3
| | | | | a forwarded bounce message. Complained upon by Daniel Buchmann, improved upon by Greg Ward. Further mungulated by Barry.
* prepare_message(): If the newsgroup is moderated, news_moderation is 1bwarsaw2002-10-191-1/+7
| | | | | | | or 2, and we remove any existing Approved header, replacing it for one of our own, pointing to the posting address. Also, a pychecker fix.
* pycheckerfiedbwarsaw2002-10-151-3/+3
|
* maybe_forward(): Use the new ForwardMessage() interface.bwarsaw2002-10-151-6/+4
|
* maybe_forward(): The bounce page documents that undetected bouncesbwarsaw2002-10-081-0/+2
| | | | | should go only to the list owners. I don't think the list moderators need to be bothered.
* maybe_forward(): Refactor forwarding logic into ForwardMessage()bwarsaw2002-10-081-13/+5
| | | | method on the MailList instance.
* _dispose(): Possibly forward the message in two situations: if thebwarsaw2002-10-051-16/+36
| | | | | | | | | message did not bounce match, or if no member addresses could be extracted from it. maybe_forward(): MIME Forward the given message to the list owner + list moderator, if bounce_unrecognized_goes_to_list_owner is true. Otherwise it discards the message. Write a log entry in either case.
* prepare_message(): In Python 2.2 and beyond,bwarsaw2002-08-161-1/+2
| | | | | | | | email.Iterators.body_line_iterator() will return a generator, which isn't len()'able directly, so we need to convert it to a list first, and then get the resulting len. Closes SF bug #593454.
* __oneloop(): Renamed to _oneloop() -- i.e. single leading underscore,bwarsaw2002-08-091-6/+6
| | | | so that it can be overridden in derived classes.
* intermediatebwarsaw2002-08-091-0/+184
|
* Make Pychecker happy and do some whitespace normalization.bwarsaw2002-08-081-2/+2
|
* Allow postings gatewayed to Usenet to inhibit the Subject: fieldbwarsaw2002-07-311-0/+6
| | | | | | | | | munging, separate from the mail list. This actually restores the original Subject: field which is stashed away in the metadata when it's munged in CookHeaders. Closes SF patch #573508. prepare_message(): Restore the original Subject: header if news_prefix_subject_too is false.
* _dispose(): Two fixes, related to Daniel Buchmann's report about SFbwarsaw2002-07-251-13/+17
| | | | | | | | | | | bug # 571634. First, catch any ValueError coming from the mktime_tz() call to calculate wildely out of date Date: headers. If we get the ValueError it's likely because the year is insane <wink> and the Date: should be clobbered. The second fix narrows the region where the list gets locked to just the .ArchiveMail() and .Save() calls. No wonder Daniel was getting AlreadyLockedErrors here -- this was clearly broken.
* make_response() -> send_response()bwarsaw2002-05-281-5/+15
| | | | | | send_response(): Check whether the sender has reached their autoresponse limit before sending the results of the command. This may not be the right time to do that check.
* _get_pipeline(): We don't need to send virgin messages through thebwarsaw2002-05-221-1/+1
| | | | Replybot.
* _dispose(): Send the message through the Replybot handler so -requestbwarsaw2002-05-221-3/+6
| | | | emails will be autoresponded. Closes bug #558909.
* _dispose(): Inhibit replybot when Precedence: is any of bulk, junk, orbwarsaw2002-05-221-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | list. Chuq gives us the relevant info from the sendmail docs: When the name is found in a "Precedence:" field, the message class is set to num. Higher numbers mean higher precedence. Numbers less than zero have the special property that if an error occurs during pro- cessing the body of the message will not be returned; this is expected to be used for "bulk" mail such as through mailing lists. The default precedence is zero. For example, our list of precedences is: Pfirst-class=0 Pspecial-delivery=100 Plist=-30 Pbulk=-60 Pjunk=-100 People writing mailing list exploders are encouraged to use "Precedence: list". Older versions of sendmail (which discarded all error returns for negative prece- dences) didn't recognize this name, giving it a default precedence of zero. This allows list main- tainers to see error returns on both old and new ver- sions of sendmail.
* process(), _dispose(): Where we were testing Precedence: againstbwarsaw2002-05-191-2/+3
| | | | "bulk", we now include "junk" and "list" as well.
* _dispose(): Ignore messages that have "Precedence: bulk" but don'tbwarsaw2002-05-171-0/+9
| | | | have "X-Ack: yes".
* _dispose(): Keep a flag around that indicates whether any of thebwarsaw2002-05-091-8/+20
| | | | | | addresses sucked out of the bounce message actually matched a member of any mailing list. If not, we still don't forward it, but we do log this situation.
* verp_bounce(): Exim stashes the envelope recipient in the Envelope-To:bwarsaw2002-05-091-7/+7
| | | | header.
* make_response(): In the list comprehension where we're calculating thebwarsaw2002-05-031-1/+1
| | | | | unprocessed lines, check for line == None (can happen if the message is sent to e.g. mylist-join with no body).
* Results.__init__(): Don't try to get the payload if there were nobwarsaw2002-05-031-0/+3
| | | | text/plain parts in the message.
* do_command(): If the Subject: header command was attempted and itbwarsaw2002-05-021-4/+12
| | | | | | failed, it might be because of a Re: prefix (or localized version thereof). Pop off the first component of the args, use that as the command and try again... once.
* __onefile(): If there's no `listname' key in the message metadata, usebwarsaw2002-05-021-9/+8
| | | | | the site list to send the message. If there's no site list, you're in heap big trouble.
* Support the new email commands framework. We now no longer usebwarsaw2002-05-021-34/+115
| | | | | | | | | | | | | | MailCommandHandler.py. Specific changes include: class Results: Basically a bag to hold state during the processing of a particular email message loaded with commands. This makes it easy to pass data around (like the mailing list object and the message). It also contains the results of the command processing and gloms up the response email. _dispose(): This method actually gets simplified because it just needs to pass things to the Results instance and let it do the job of processing the email commands.
* _dispose(): In the SomeRecipientsFailed handler, be sure to set thebwarsaw2002-04-181-2/+3
| | | | | msgdata's "recips" key to the list of recipients that were rejected, otherwise lots of folks on the list will get duplicates!
* _dispose(): There are reports of None's showing up in the addrs. Notbwarsaw2002-04-111-0/+4
| | | | sure why that is, but let's filter them out anyway.
* _dispose(): Catch socket.errors that can come from the underlyingbwarsaw2002-04-101-0/+19
| | | | | | | | | delivery module (i.e. SMTPDirect) when it couldn't connect to the smtp server. When this happens, log an error message, but only do it once so we don't fill up logs/error with a message-per-second. We keep a self.__logged flag which is set when we log the error and reset in the class constructor, and when the process() function returned successfully.
* _dispose(): We need to iterate over the addrs list. Also, reload thebwarsaw2002-04-011-15/+17
| | | | | list's state via xlist.Load() -- conservative if the state hasn't changed.
* _dispose(): Since the runner doesn't normally need to lock the list,bwarsaw2002-04-012-3/+4
| | | | call mlist.Load() so we can be sure we've got the most current state.
* Update the big comment showing mail flow through the system.bwarsaw2002-04-011-40/+58
|
* _dispose(): Since the BounceRunner doesn't normally need to lock thebwarsaw2002-04-011-0/+2
| | | | | list, call mlist.Load() so we can be sure we've got the most current state.
* _snooze(): Use self.SLEEPTIME instead of mm_cfg.QRUNNER_SLEEP_TIME forbwarsaw2002-03-261-2/+4
| | | | | additional indirection that's overridden by the BounceRunner. Defaults to QRUNNER_SLEEP_TIME for backwards compatibility.
* A significant rewrite of the main bounce runner logic to make itbwarsaw2002-03-261-112/+97
| | | | | | | | | | | | | | | | | | | | | | | | | | | perform better. In general there are two changes: 1) we never lock a list until and unless absolutely necessary, 2) we only run the bounce runner once every minute (as opposed to the normal runners' once-per-second sleep time). Specifically, SLEEPTIME: The base class now looks at this attribute to decide how long to sleep between loop iterations, and it defines a default. We override the bounce runner's value to lengthen the time it sleeps to 1 minute (we may eventually want to move this to Defaults.py). __scanbounce(): Gone. All its functionality is subsumed in the new ScanMessages() method and the new _dispose(). __verpbounce(): Renamed to the non-method verp_bounce(). Also, we rip out the code that iterates through all the lists if the bounce came to the site list's -bounces address. _dispose(): Simply calls verp_bounce() to find bouncing addresses, and if that returns a false value (empty list), calls ScanMessages() to see if the bounce detector can find some bouncing addresses. If not, we're done (after possibly forwarding the non-matching message). Otherwise, we register the bounce either on the target mailing list, or on all the mailing lists if this came to the site's -bounces address.
* Update copyright years.bwarsaw2002-03-164-4/+4
|
* _dispose(): Fil correctly pointed out that each of thebwarsaw2002-03-151-9/+17
| | | | | ParseMailCommands() calls in this runner need to be wrapped around a catch of TimeOutError.
* _dispose(): Wrap the ParseMailCommands() call in a try/except. If thebwarsaw2002-03-151-1/+6
| | | | | acquisition of the shared pending.db database lock fails, we want to requeue the message for another try later.
* _dispose(): Add support for the `toconfirm' key, used by the newbwarsaw2002-03-141-2/+12
| | | | confirm mail script.