Re: [Mailman-Users] Please review this procedure for sendmail integration

2004-06-24 Thread Richard Barrett
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/


[Mailman-Users] Please review this procedure for sendmail integration

2004-06-23 Thread Ed Greenberg
Since many people cannot use David Champion's mm-handler due to shared use 
of domains, 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/