diff -ruN mailman.orig/Mailman/Message.py mailman/Mailman/Message.py --- mailman.orig/Mailman/Message.py Wed Jul 21 03:05:10 1999 +++ mailman/Mailman/Message.py Thu Sep 2 10:54:54 1999 @@ -229,6 +229,9 @@ if not self.getheader('from') and set_from: self.SetHeader('from', sender) + def SetDate(self, date=time.ctime(time.time())): + self.SetHeader('date', date) + def GetSender(self): return self.sender diff -ruN mailman.orig/Mailman/Utils.py mailman/Mailman/Utils.py --- mailman.orig/Mailman/Utils.py Wed Aug 25 10:42:33 1999 +++ mailman/Mailman/Utils.py Thu Sep 2 10:52:49 1999 @@ -123,10 +123,15 @@ def SendTextToUser(subject, text, recipient, sender, add_headers=[]): - import Message + import Message, time msg = Message.OutgoingMessage() msg.SetSender(sender) msg.SetHeader('Subject', subject, 1) + if msg.getheader('Message-ID') == None: + msg.SetHeaders('Message-ID: <%f.mailman@%s>' % (time.time(), + mm_cfg.DEFAULT_HOST_NAME)) + if msg.getheader('Date') == None: + msg.SetDate() msg.SetBody(QuotePeriods(text)) DeliverToUser(msg, recipient, add_headers=add_headers) @@ -179,6 +184,29 @@ OutgoingQueue.deferMessage(queue_id) def TrySMTPDelivery(recipient, sender, text, queue_entry): + import types + + if type(mm_cfg.MAILER_CMD) == types.StringType and len(mm_cfg.MAILER_CMD): + recip = [] + if type(recipient) == types.StringType: + recip = [recipient] + elif type(recipient) == types.ListType: + recip = recipient + else: + return + # What else we can do? Log? + try: + ppe = os.popen(mm_cfg.MAILER_CMD % { + 'mm_sender': sender, + 'mm_recipients': string.join(recip, ' '), + }, 'w') + ppe.write(text) + ppe.close() + return + except: + pass + # Try to deliver via SMTP port instead + import socket import OutgoingQueue diff -ruN mailman.orig/Mailman/mm_cfg.py.dist.in mailman/Mailman/mm_cfg.py.dist.in --- mailman.orig/Mailman/mm_cfg.py.dist.in Fri Jun 19 22:11:32 1998 +++ mailman/Mailman/mm_cfg.py.dist.in Thu Sep 2 10:52:49 1999 @@ -55,5 +55,7 @@ PUBLIC_ARCHIVE_URL = '/pipermail' PRIVATE_ARCHIVE_URL = '/mailman/private' +MAILER_CMD = '@SENDMAIL@' + # Note - if you're looking for something that is imported from mm_cfg, but you # didn't find it above, it's probably in Defaults.py. diff -ruN mailman.orig/README.QMAIL mailman/README.QMAIL --- mailman.orig/README.QMAIL Mon Mar 1 18:37:40 1999 +++ mailman/README.QMAIL Thu Sep 2 10:52:49 1999 @@ -67,7 +67,7 @@ tcp-env: 127. 143.205.200 : setenv RELAYCLIENT where 143.205.200. is your domain. If you use tcpserver, then you - need something like the following in your /etc/tcp.smtp file: + need something like the following in your /etc/tcp.smtp (or such) file: 143.205.200.:allow,RELAYCLIENT="" 127.:allow,RELAYCLIENT="" @@ -75,10 +75,13 @@ - BN: Bigger /var/qmail/control/concurrencyremote values work better sending outbound messages. +- Bigger /var/qmail/control/concurrencyremote values work better sending + outbound messages. + - More information about setting up qmail and relaying can be found in the qmail documentation. -BN: Last but not least, here's a little script to generate aliases to +BN: At last but not least there's a little script to generate aliases to your lists: #!/bin/sh diff -ruN mailman.orig/configure.in mailman/configure.in --- mailman.orig/configure.in Fri Jul 23 09:09:05 1999 +++ mailman/configure.in Thu Sep 2 10:52:49 1999 @@ -254,7 +254,7 @@ if test -z "$with_mail_gid" then AC_CACHE_VAL(ac_cv_group_mail, [dnl - ac_cv_group_mail="other mail daemon"]) + ac_cv_group_mail="nofiles other mail daemon"]) else ac_cv_group_mail=$with_mail_gid fi @@ -294,8 +294,48 @@ fi -#MM_FIND_USER_ID(ALIAS_UID, mailman, alias_wrapper) -#MM_FIND_GROUP_ID(ALIAS_GID, mail, alias_wrapper) +AC_MSG_CHECKING(for sendmail programs) +AC_ARG_WITH(sendmail, dnl +[ --with-sendmail do deliveries with this program]) +if test -z "$with_sendmail" +then + AC_CACHE_VAL(ac_cv_sendmail, [dnl + ac_cv_sendmail="/var/qmail/bin/qmail-inject /usr/lib/sendmail /usr/sbin/sendmail /etc/sendmail"]) +else + ac_cv_sendmail=$with_sendmail +fi +AC_SUBST(SENDMAIL) +changequote(,) +cat > conftest.py <