On 19 Jun 2004, at 15:45, Ed Greenberg wrote:

Since many people cannot use David Champion's mm-handler due to shared use of domains,

The other major problem with this perl script, which is logically part of the MTA, is (or was when I used it) that incoming mail is silently lost if the Mailman delivery agent script terminates abnormally for any reason. More normal practice if a delivery agent fails is for the delivering MTA to hold and retry later, ultimately reporting non-delivery to the sender if delivery failure persists.


I've worked this up. I'd appreciate some constructive comments, yea or nay, on this procedure.

Using the postfix MTA functionality to do automatic sendmail alias handling
----------------------------------------------------------------------- ----


In order to add a list to mailman on a sendmail based system, you need to
add a bunch of aliases for that list to the alias file. In this customization,
we implement a second alias file and teach sendmail about it.


We use a mailman feature that was designed for the postfix mail program - a replacement for sendmail. This feature creates /home/mailman/data/aliases

1. We have a script that will copy the alias file and then process it. We need to do this
since sendmail doesn't like alias files to be in directories that don't meet very
specific permission requirements. /home/mailman/data doesn't meet this requirement. Our script will copy the alias file from /home/mailman/data to /etc. It uses a different name in order not to clash with the existing /etc/aliases


Create /usr/local/sbin/mailman.aliases with these commands:

/bin/cp /home/mailman/data/aliases /etc/mailman.aliases
/usr/bin/newaliases

2. We have to tell mailman that it is using postfix. We lie.

Add these to mm_cfg.py:

MTA='Postfix'
POSTFIX_ALIAS_CMD = '/usr/bin/sudo /usr/local/sbin/mailman.aliases'
POSTFIX_STYLE_VIRTUAL_DOMAINS = []

3. We have to tell sendmail about the new alias file.

in /etc/mail/sendmail.mc find this line:
define(`ALIAS_FILE', `/etc/aliases')dnl
and change it to:
define(`ALIAS_FILE', `/etc/aliases,/etc/mailman.aliases')dnl
Run a make (or otherwise refresh sendmail.cf and then restart sendmail

Now when we run newaliases, it will rebuild both alias files.

4. We need permission for apache and mailman to run our script from step 1.

In the /etc/sudoers file (use the command /usr/sbin/visudo) we need two lines:
apache ALL= NOPASSWD: /usr/local/sbin/mailman.aliases
mailman ALL= NOPASSWD: /usr/local/sbin/mailman.aliases


Note that your web server may not run as 'apache' It may run as 'www' or 'nobody'.
Whatever it runs as is what you need where it says apache.



5. As mailman, run /home/mailman/bin/genaliases Check for a file /home/mailman/data/aliases and also TWO files /etc/mailman.aliases and /etc/mailman.aliases.db

6. Test creating a list using /home/mailman/bin/newlist
Check for the appearance of aliases for that list in /etc/mailman.aliases
Add some users and test the list


7. Test for creating a list using http://domain.com/mailman/create
Check for the appearance of aliases for that list in /etc/mailman.aliases
Add some users and test the list


Ed Greenberg
[EMAIL PROTECTED]
6/19/2004

------------------------------------------------------
Mailman-Users mailing list
[EMAIL PROTECTED]
http://mail.python.org/mailman/listinfo/mailman-users
Mailman FAQ: http://www.python.org/cgi-bin/faqw-mm.py
Searchable Archives: http://www.mail-archive.com/mailman-users%40python.org/




------------------------------------------------------
Mailman-Users mailing list
[EMAIL PROTECTED]
http://mail.python.org/mailman/listinfo/mailman-users
Mailman FAQ: http://www.python.org/cgi-bin/faqw-mm.py
Searchable Archives: http://www.mail-archive.com/mailman-users%40python.org/

Reply via email to