Configure Mailman on Debian Etch with a Postfix
Install a Mailman with a Postfix on Debian
apt-get install postfix mailman
Configure Mailman
Add or change these lines in /etc/mailman/mm_cfg.py (example vhost : lists.example.net) :
DEFAULT_EMAIL_HOST = 'lists.example.net' DEFAULT_URL_HOST = 'lists.example.net' DEFAULT_URL_PATTERN = 'http://%s/'
Configure Postfix
Example with (domain : lists.example.net)
- configure main.cf like this :
- add /etc/postfix/transport with this :
- Run this cmd :
- Restart your postfix :
- Add this vhost to your apache (only tested with a Apache v2) :
- then create the document root :
- go to : http://lists.example.net/listinfo and enjoy
# See /usr/share/postfix/main.cf.dist for a commented, more complete version smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU) biff = no # appending .domain is the MUA's job. append_dot_mydomain = no # Uncomment the next line to generate "delayed mail" warnings #delay_warning_time = 4h myhostname = foo.example.net alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases myorigin = /etc/mailname mydestination = lists.example.net, localhost relayhost = # Relay mailman relay_domains = lists.example.net transport_maps = hash:/etc/postfix/transport mailman_destination_recipient_limit = 1 mynetworks = 127.0.0.0/8 192.168.15.0/24 mailbox_command = procmail -a "$EXTENSION" mailbox_size_limit = 0 recipient_delimiter = + inet_interfaces = all # Allow connections from trusted networks only. smtpd_client_restrictions = permit_mynetworks, reject_unknown_client smtpd_helo_restrictions = permit_mynetworks, reject_invalid_hostname smtpd_recipient_restrictions = permit_mynetworks, reject_unauth_destination
lists.example.net mailman:
postmap /etc/postfix/transport
# /etc/init.d/postfix restart
Great your postfix is now ready !
Configure the HTTP interface
<VirtualHost *:80>
ServerName lists.example.net
DocumentRoot /var/www/lists
ErrorLog /var/log/apache2/lists-error.log
CustomLog /var/log/apache2/lists-access.log combined
<Directory>
Options Indexes FollowSymLinks
AllowOverride None
</Directory>
Alias /pipermail/ /var/lib/mailman/archives/public/
Alias /images/mailman/ /usr/share/images/mailman/
ScriptAlias /admin /usr/lib/cgi-bin/mailman/admin
ScriptAlias /admindb /usr/lib/cgi-bin/mailman/admindb
ScriptAlias /confirm /usr/lib/cgi-bin/mailman/confirm
ScriptAlias /create /usr/lib/cgi-bin/mailman/create
ScriptAlias /edithtml /usr/lib/cgi-bin/mailman/edithtml
ScriptAlias /listinfo /usr/lib/cgi-bin/mailman/listinfo
ScriptAlias /options /usr/lib/cgi-bin/mailman/options
ScriptAlias /private /usr/lib/cgi-bin/mailman/private
ScriptAlias /rmlist /usr/lib/cgi-bin/mailman/rmlist
ScriptAlias /roster /usr/lib/cgi-bin/mailman/roster
ScriptAlias /subscribe /usr/lib/cgi-bin/mailman/subscribe
ScriptAlias /mailman/ /usr/lib/cgi-bin/mailman/
</VirtualHost># mkdir /var/www/list
Change the List creator’s (authentication) password
Just launch this cmd line as root :
# mmsitepass
Add a new ML
You have two solutions :
- cmd line : newlist
- Web interface : http://lists.example.net/admin
And add the aliases (example with devel list) :
- add this to /etc/aliases
- Launch this command as root :
## devel mailing list devel: "|/var/lib/mailman/mail/mailman post devel" devel-admin: "|/var/lib/mailman/mail/mailman admin devel" devel-bounces: "|/var/lib/mailman/mail/mailman bounces devel" devel-confirm: "|/var/lib/mailman/mail/mailman confirm devel" devel-join: "|/var/lib/mailman/mail/mailman join devel" devel-leave: "|/var/lib/mailman/mail/mailman leave devel" devel-owner: "|/var/lib/mailman/mail/mailman owner devel" devel-request: "|/var/lib/mailman/mail/mailman request devel" devel-subscribe: "|/var/lib/mailman/mail/mailman subscribe devel" devel-unsubscribe: "|/var/lib/mailman/mail/mailman unsubscribe devel"
# newaliases
Delete a ML
- Just delete the ML but keep th archive
- Delete the archive
- Remove the mail aliases :
# rmlist listname
# rmlist -a listname
# vim /etc/aliases # newaliases