summaryrefslogtreecommitdiff
path: root/Mailman
Commit message (Collapse)AuthorAgeFilesLines
...
* Present(): Need blank line after Content-description header so MIMEbwarsaw1999-11-301-0/+1
| | | | digests unpack correctly (bug found by Sjoerd Mullender).
* Parameterize the message delivery module used.bwarsaw1999-11-301-2/+9
|
* Simple SMTP direct handoff of messages. This doesn't do DSN, nor doesbwarsaw1999-11-301-0/+67
| | | | | | it queue messages. It registers bounces only for SMTP error codes >= 500, although errors never seem to occur with sendmail when not doing DSN -- probably because such deliveries are asynchronous.
* Fixed the comments for PUBLIC_EXTERNAL_ARCHIVER andbwarsaw1999-11-291-8/+9
| | | | | | | | | | | | PRIVATE_EXTERNAL_ARCHIVER. Get DEFAULT_HOST_NAME and SMTPHOST from the autoconf calculated @FQDN@ parameter, which is the fully qualified local host name. DEFAULT_URL uses the @URL@ value. PUBLIC_ARCHIVE_URL and PRIVATE_ARCHIVE_URL both also have more sensible defaults. Added SMTPPORT, which defaults to 0 (which lets smtplib use its own default).
* ChangeOptions(): Don't allow real_name to differ from _internal_namebwarsaw1999-11-291-0/+11
| | | | | by anything other than letter case. This is a QND (quick 'n' dirty) security patch when using an external archiver.
* A bunch of docstring fixes.bwarsaw1999-11-281-23/+22
|
* CheckCookie(): Watch out for cookiedata getting truncated to bebwarsaw1999-11-261-4/+6
| | | | | shorter than len(key). Just let it fail normally in those cases. Fixes PR#158.
* process(): Tack on the -f option to sendmail so that the envelopebwarsaw1999-11-261-1/+4
| | | | sender get set correctly.
* MailUserPassword(): Don't stick a newline at the end of the subjectbwarsaw1999-11-261-2/+5
| | | | text, otherwise this messes up the message headers.
* call_script(): Be sure to explicitly flush stdout and stderr since thebwarsaw1999-11-261-0/+2
| | | | | os._exit() appears to skip this, which will cause premature script termination errors.
* ObscureEmail(), UnobscureEmail(): change munging from __at__ to --at--bwarsaw1999-11-261-2/+2
| | | | | because for some reason IE5 seems to corrupt the former under at least some situations.
* ParseMailCommands(): typo that caused a very interesting (and subtle)bwarsaw1999-11-251-1/+1
| | | | bug
* Remove "x-pmrqc:" header which apparently Pegasus mail can use to minebwarsaw1999-11-251-0/+2
| | | | for addresses. Reported by dpalffy@kkt.bme.hu. PR#165
* SendTextToUser(), DeliverToUser(), Reap(), TrySMTPDelivery(),bwarsaw1999-11-241-213/+0
| | | | | SnarfMessage(): Removed all these functions, since they are no longer used.
* AddMember(), ApprovedAddMembers(), DeleteMember(): Convert messagebwarsaw1999-11-241-29/+40
| | | | | | | | | delivery to pipeline architecture by using HandlerAPI.DeliverToUser() for fast track delivery of the notification messages. ApprovedAddMembers(): Don't need to call Reap anymore (it's gone). Post(): ...process() => ...DeliverToList()
* Convert message delivery to pipeline architecture by usingbwarsaw1999-11-241-11/+13
| | | | | HandlerAPI.DeliverToUser() for fast track delivery of the notification messages.
* Much simplification, since most of this work has been moved to thebwarsaw1999-11-241-210/+38
| | | | | | | | message pipeline modules. Specifically, AddNonStandardHeaders(), SendTextToUser(), DeliverToUser(), QuotePeriods(), DeliverToOwner(), DeliverToList(), CreateSubscribeAck(): All these methods have been removed.
* OutgoingMessage.__init__(): take an optional text argument, and passbwarsaw1999-11-241-2/+17
| | | | | | | | | that to the StringIO constructor. Useful for subclassing. UserNotification: Very useful subclass of OutgoingMessage which takes a recipient, a sender, a subject, and the message text, and sets the appropriate headers and `recips' attribute for use in the message pipeline.
* AcknowlegePosts => AcknowledgePostsbwarsaw1999-11-241-7/+7
|
* AcknowlegePosts => AcknowledgePostsbwarsaw1999-11-241-30/+31
| | | | Some rewording of the notification messages.
* Convert message delivery to pipeline architecture by usingbwarsaw1999-11-241-13/+14
| | | | | HandlerAPI.DeliverToUser() for fast track delivery of the notification messages.
* filterfunc(): Uh, fixed this because the old way never actually caughtbwarsaw1999-11-241-1/+1
| | | | | x-beenthere's. I'm hoping this was a transcription error on my part, otherwise this never worked, and we've been lucky!
* hold_for_approval(): Do the sending of postheld notification to thebwarsaw1999-11-241-12/+17
| | | | user here and not in the post script.
* AcknowlegePosts => AcknowledgePostsbwarsaw1999-11-242-4/+4
|
* New version number is "1.2 (experimental)"bwarsaw1999-11-241-1/+1
|
* remove test values for KNOWN_SPAMMERSbwarsaw1999-11-241-5/+1
|
* docstringbwarsaw1999-11-241-2/+2
|
* Convert message delivery to pipeline architecture by usingbwarsaw1999-11-241-6/+8
| | | | | | | | HandlerAPI.DeliverToUser() for fast track delivery of the acknowledgement to the sender. We need to be a little tricky digging the original sender out of a msg object attribute, since CookHeaders (which sets the attribute) changes it for the outgoing message. If msg.original_sender isn't found, use the normal msg.GetSender().
* process() => DeliverToList()bwarsaw1999-11-241-1/+19
| | | | | | | | | | | DeliverToUser(): New function which implements a pipeline for direct delivery to a specified user. This pipeline is used for all admin notifications, and other things like user post acks. It sets msg.fastrack attribute to 1 so other modules can know which delivery track this message is on. This lets us use the same module for all delivery, or separate ones for delivery to list and delivery to user.
* First, because this module is going to modify the Sender: field forbwarsaw1999-11-241-6/+12
| | | | | | | | | | | | outgoing mail, we stash the original value of msg.GetSender() in a message object attribute msg.original_sender. This is used by the Acknowledge module. Second, only perform subject prefix prepending if not msg.isdigest an dnot msg.fastrack. I.e. the message isn't a pre-crafted digest message, and it's not being fast tracked via HandlerAPI.DeliverToUser. Fast tracking means it's being delivered to a single address and not to the general list subscribership.
* Remove the ack_posts stuff, since this is now done in the Acknowledgebwarsaw1999-11-241-5/+2
| | | | module.
* AcknowlegePosts => AcknowledgePostsbwarsaw1999-11-241-12/+17
| | | | | | | | | Convert message delivery to pipeline architecture by using HandlerAPI.DeliverToUser() for fast track delivery of the acknowledgement to the sender. We need to be a little tricky digging the original sender out of a msg object attribute, since CookHeaders (which sets the attribute) changes it for the outgoing message. If msg.original_sender isn't found, use the normal msg.GetSender().
* AcknowlegePosts => AcknowledgePostsbwarsaw1999-11-241-1/+1
|
* process(): Yikes! Don't calculate recipients if the msg objectbwarsaw1999-11-161-0/+4
| | | | | | already has a recipients list, otherwise digests will get delivered to all non-digest members (and digest members won't even get the message at all!)
* PrintPostRequest(): Snarf the message text out of the file systembwarsaw1999-11-151-3/+20
| | | | | | | instead of getting handed it from the requests database. If we can't open the file for reading, the message was lost, so print an information message and tidy up the housekeeping (this last is a bit of a kludge though).
* Held posts are now stored in a separate file in the file system,bwarsaw1999-11-151-13/+43
| | | | | | | | | | | | | | | | | instead of marshalled into the requests.db file. The file name will always be $PREFIX/data/heldmsg-<listname>-<id> where <id> is the request id integer value. HoldMessage(): Store the message text in the heldmsg file as described above. In the requests.db marshal, we just include the filename in the last slot. Although this is redundant information, it makes calculating the file name a little easier (hmm, maybe we should remove this anyway). __handlepost(): Watch out for the message file being removed, and raise a LostHeldMessage in that situation. In any case, once the message is dispatched, be sure to unlink the message file (transforming expected exceptions into LostHeldMessage).
* MailmanError: new exception class which will eventually be the basebwarsaw1999-11-151-13/+35
| | | | | | | | | | | | class for all Mailman exception. When creating a new exception class, or converting an old string-based exception, always use this as the base class. MMLoopingPost, EmailAddressError: Use MailmanError as base class. LostHeldMessage: New exception which handles the case when the held message text file gets lost (i.e. deleted from the file system) during an admindb transaction.
* HELDMSG, SUBSCRIPTION: removed these from here since they're only usedbwarsaw1999-11-151-5/+5
| | | | | | | | | | locally in ListAdmin.py ADMINDB_PAGE_TEXT_LIMIT: new variable which controls how big an excerpt to include in the admindb text field. Current default is 4k. This number is passed directly to fileobj.read(), so a negative number means put the whole message in the field (which could slow down the web page).
* When adding the header and the footer, be sure to convert \r\n to justbwarsaw1999-11-121-2/+3
| | | | | \n so we don't see ^M's in this text (some MTAs may do the conversion anyway, but not all)
* InitTempVars(): Set self.__filename to other than None ifbwarsaw1999-11-121-2/+5
| | | | | | self.fullpath() returns a non-false value __opendb(): assert that self.__filename is true
* __init__(): Removed redundant setting of self._full_path. This isbwarsaw1999-11-121-1/+2
| | | | | | | also done in InitTempVars() which is called just before the conditional. InitTempVars(): If name is false, then set self._full_path to None.
* __del__(): wrap Unlock in it's separate try/exceptbwarsaw1999-11-121-2/+5
|
* Move Unlock() call into try clause in case the list hasn't even gottenbwarsaw1999-11-121-2/+3
| | | | far enough to have a lock object
* All the functionality of this class is moved elsewhere (cron/gate_newsbwarsaw1999-11-121-160/+8
| | | | | | for the news->mail gateway and Handlers/ToUsenet for mail->news). This class now contains only the list configuration variables.
* Fix typos after testing, specifically:bwarsaw1999-11-121-6/+9
| | | | | | | | use getattr() not hasattr() For the outgoing message, take the object passed in as arg, flatten it via the str() method, and post the StringIO'd wrapper to the nntp process.
* This CGI script is no longer used.bwarsaw1999-11-111-91/+0
|
* small change to "no description" msg.bwarsaw1999-11-111-1/+1
|
* Some general cleanup of imports, globals (zapped 'em), and a few otherbwarsaw1999-11-111-83/+90
| | | | | | programming constructs. Could still use a lot more work. Make sure that lists are saved and unlocked when exiting.
* Some general cleanupbwarsaw1999-11-111-30/+35
|
* Some general cleanup of imports, globals (zapped 'em), and a few otherbwarsaw1999-11-111-50/+54
| | | | programming constructs. Could still use a lot more work.