summaryrefslogtreecommitdiff
path: root/mail (follow)
Commit message (Collapse)AuthorAgeFilesLines
* This directory is no longer used.bwarsaw2001-05-111-3/+0
|
* All the old delivery scripts contact_transport, deliver, dumb_deliverbwarsaw1999-11-244-331/+0
| | | | | | are being removed as all mail deliver gets migrated to the new pipeline architecture. Eventually some of the bulk mailer functionality may be added back, but not this way.
* Applied patch for PR#69, although num_addrs doesn't appear to be usedbwarsaw1999-07-091-1/+1
| | | | anywhere, which is why we probably never saw this problem before.
* deliver shouldn't be ignored!bwarsaw1999-03-311-1/+0
|
* VERSION is no longer set in configure because it's too hard tobwarsaw1999-01-151-2/+0
| | | | | | | | | | | | propagate version string changes to the public (you have to autoreconf, then reconfigure and reinstall). Now, VERSION is set directory in Defaults.py.in and the Release.py script updates that file directly. Now we just need to run ./config.status and do a re-install. I hope this will make things easier. I'm also bumping the version to 1.0b8, so I can do a release tomorrow.
* forker(): fixed typo in docstring. Also use Utils.reraise() insteadbwarsaw1999-01-081-2/+4
| | | | of manual re-raising.
* Removed import of smtplib, since it isn't used in this file.bwarsaw1998-12-221-2/+0
|
* Made a new system limit called SMTP_MAX_RCPTS that limits the numbercotton1998-11-231-10/+20
| | | | | | | | | | | | | of RCPT TO smtp commands can be given for a single message. This is necessary to make large lists work with mailers that have a maximum number of recipients per message (most do). Defaults.py.in - added SMTP_MAX_RCPTS with default value of 500, which i believe is conservatively small. contact_transport - made it chunkify the recipients into chunks of <= SMTP_MAX_RCPTS and go through the delivery process for each of those chunks. This change shouldn't have much effect on smaller lists at all. scott
* main(): Only the child proces should do an os._exit() - and we put itklm1998-11-211-2/+4
| | | | | | | | within a try/finally to ensure, as best we can, that it happens. This may take care of the problems that greg stein was reporting, where a pipe was failing to properly notice the loss of the parent process - now the parent should exit normally. Not sure, this is the best guess so far (out of a discussion w/scott and barry).
* make finishbwarsaw1998-10-201-0/+2
|
* changed contact_transport so that it doesn't invoke a queue runcotton1998-10-051-1/+1
| | | | | | | | | | | | | ditto for Utils.SendTextToUser. rearranged OutgoingQueue so that 1) it sets a global lock to only allow on queue run at a time 2) enqueueMessage puts a queue entry in an active state 2) the queue run only processes messages in a deferred state or messages that are in an active state but stale 3) it has a deferMessage interface. which is now used by Utils.TrySMTPDelivery It now keeps track of the state of a q entry by means of file metadata - if the qfile is setuid, it's in active state, if it's not it's in deferred state. scott
* Do some explicit logging if an error is encountered in the queueing ofklm1998-08-051-1/+9
| | | | the message, so we can detect the linux egid inheritance problem.
* do_child(): Take parameters via stdin lines, instead of command lineklm1998-07-231-34/+35
| | | | | | | | | | | | | | | | | | | | | | | arguments, to avoid exposing addresses to shell. Protocol: line 1: batchnum line 2: sender line 3...n+2: n recipients line n+3: <empty> - delimiting end of recipients line n+4: message content ContactTransport(): Similarly, pass parameters to contact_transport in the same manner, via contact_transport process stdin. This avoids both security problems (and address like `touch /etc/passwd`, as someone on the developers list warned) and distortion problems (shell metacharacters in addresses). Additionally, instrumented both the main process and the child process with a stderr logger, distinguishing the labels for the two so we can tell them apart in the error logs.
* Take parameters via stdin lines, instead of command line arguments, toklm1998-07-231-4/+19
| | | | | | | | | | | | avoid exposing addresses to shell. This avoids both security problems (and address like `touch /etc/passwd`, as someone on the developers list warned) and distortion problems (shell metacharacters in addresses). The protocol is (starting the line count at 1): line [1]: sender line [2:n+1]: n recipients line [n+2]: <empty> - delimiting end of recipients line [n+3:]: message content
* Utils.TrySMTPDelivery() was being invoked with the from_addr andklm1998-07-231-1/+1
| | | | | | | | | | | | | | | | | | | | | | to_addrs in the wrong order. (Looks like it would make sense to change the order of the recipient and sender arguments in equeueMessage to be consistent with other routines: def enqueueMessage(the_sender, recip, text): def TrySMTPDelivery(recipient, sender, text, queue_entry): def send(self, to, frm, text, headers=None): ) And i did get an aberrant behavior for the first message i posted after i applied the fix, specifically, the message showed up around 10 times. Subsequent messages only showed up once, which is proper. It may be that some quirk in the failure of probably around 10 previous trials led to "logjam" in the queue that got cleared by the first success, but i'm unable to confirm that. Something to watch out for - i think it would be good to actually exercise the queue mechanism to some substantial degree before release.
* Whoops! Neglected to mention that i added a LogStdErr() call toklm1998-07-231-1/+1
| | | | enable error logging from this module all the time.
* Add missing imports so we don't depend on other modules populatingklm1998-07-231-6/+8
| | | | | | Mailman package with what we need. Qualify TrySMTPDelivery with module from which it originates.
* Whoops, there was another call to smtplib that needed the indirection.viega1998-07-201-4/+3
|
* Cosmetic addition of info about the purpose of the REFRACT and TRIESklm1998-07-021-1/+2
| | | | vars.
* [Other developers - please take a look at these refinements to theklm1998-07-011-58/+112
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | deliver script. Deliver is all important, and i don't want to screw it up. I've tested it a bit, but would like your scrutiny before i put something like it in production!] I implemented a finite loop around all os.fork()s in the script, to retry every 15 seconds, up to five times, when error.EAGAIN (resource temporarily unavailable) is hit. In the process i've encapsulated the script code in functions, including a function "forker()" (not mama_forker() - i showed some restraint:), which takes care of the EAGAIN looping. Here's a cron report on the error the last time mailpasswds was run: Your "cron" job on parrot /usr/local/bin/python /home/mailman/mailman/cron/mailpasswds produced the following output: Here's a sample of the traceback that Traceback (innermost last): File "/home/mailman/mailman/cron/mailpasswds", line 117, in ? main() File "/home/mailman/mailman/cron/mailpasswds", line 114, in main MailAllPasswords(list, users) File "/home/mailman/mailman/cron/mailpasswds", line 81, in MailAllPasswords list.SendTextToUser(subject = subj, File "/home/mailman/mailman/modules/mm_deliver.py", line 105, in SendTextToUser mm_utils.SendTextToUser(subject, text, recipient, sender, File "/home/mailman/mailman/modules/mm_utils.py", line 75, in SendTextToUser DeliverToUser(msg, recipient, add_headers=add_headers) File "/home/mailman/mailman/modules/mm_utils.py", line 89, in DeliverToUser if os.fork(): os.error: (11, 'Resource temporarily unavailable')
* Packagizedbwarsaw1998-06-192-2/+5
|
* Fixed a typo which only is a problem if there is 1 group.viega1998-06-021-3/+3
| | | | | Also, fixed the popen to contact transport to invoke python instead of relying on the file to be executable.
* Modified the deliver scripts to call contact_transport via a popenviega1998-05-303-30/+24
| | | | | instead of an exec, and to pass the message through stdin instead of using temp files, to save on file I/O.
* Added the contact_transport script to the list of files to copy.viega1998-05-301-1/+1
|
* Fixed a bug where the first parameter to exec wasn't right, nor wereviega1998-05-301-3/+3
| | | | some variable names.
* Fixed this to generate a new temp file for each time it contactsviega1998-05-301-7/+20
| | | | | sendmail. This won't live long, I just have to rewrite the code to use stdin / stdout so it doesn't do all that file IO.
* There are some commented out debugging lines now.viega1998-05-301-0/+2
|
* Just removed a setting of SENDMAIL_CMD I overlooked.viega1998-05-291-1/+0
|
* Modified to use contact_transport instead of a sendmail command.viega1998-05-282-27/+14
|
* Script that contacts port 25 to send mail. It currently uses my smtplib.pyviega1998-05-281-0/+36
| | | | | and not the one that now comes w/ Python due to some UI concerns. When I have the time, I'll change it to use the standard one.
* ignore the Makefilebwarsaw1998-05-261-0/+1
|
* Autoconf template for this directory's Makefile.bwarsaw1998-05-261-0/+69
|
* 1. Use the standard Python invocation #! line to get the interpreterbwarsaw1998-05-261-1/+1
| | | | from $PATH
* 1. Use the standard Python invocation #! line to get the interpreterbwarsaw1998-05-261-4/+3
| | | | | | | | | | | from $PATH 2. Do no direct sys.path munging in this file. Import the `paths' module, which is created during the configure process, and which performs all necessary path munging (and exports some useful variables too). 3. Remove RCS crud
* Fixed a typo in the zipcode.viega1998-05-262-3/+3
|
* Added copyright notices to all source files where I am legally entitled to ↵viega1998-05-252-1/+32
| | | | | | | do so. Added a copy of the GNU GPL. Added information about mailman-users in README, and reworded some text in there (made the credits less verbose... perhaps they should move to a credits file?)
* Resolved elusive bug - addresses containing quotes - eg,klm1998-04-111-1/+2
| | | | | | | gordon_o'hara@vanguard.com - was losing the quote when passed on the command line to sendmail. Fixed by doing a repr() of th recipient, so eg gordon_o\'hara@vanguard.com was being passed - and accepted properly by sendmail.
* Preparing to package a distribution - add a module docstring andmailman1998-04-091-0/+4
| | | | __version__ info.
* Added a modest docstring to GroupByDomain.mailman1998-03-301-0/+1
|
* We have been seeing problems when invoked in a tight loop frommailman1998-03-201-3/+5
| | | | | | | | | senddigest with loss of the digest temp files. To aid debugging, we add an argument indicating the file when an ioerror is encountered in the process (but the IOError is still raised). See my next checkin, of mm_digest, for what seems to be the fix of the underlying problem.
* Whoops! Neglected to notice that deliver is a script, not a binary, so i'mmailman1998-03-081-0/+76
| | | | checking it in... (Phew - before shipping a dist that lacked it...)
* Ignore the binaries - they should be built fresh from the sources inmailman1998-03-041-0/+3
| | | | ../src dir.
* Initial revisionmailman1998-02-271-0/+22