Mailman
Installation
sudo apt-get install mailman
Konfiguration
Postfix
In Alias-Datenbank folgende Einträge hinzufügen:
INSERT INTO aliases (source, destination) values ('mailman@<domain>', 'mailman@lists.<domain>'); INSERT INTO aliases (source, destination) values ('mailman-admin@<domain>', 'mailman-admin@lists.<domain>'); INSERT INTO aliases (source, destination) values ('mailman-bounces@<domain>', 'mailman-bounces@lists.<domain>'); INSERT INTO aliases (source, destination) values ('mailman-confirm@<domain>', 'mailman-confirm@lists.<domain>'); INSERT INTO aliases (source, destination) values ('mailman-join@<domain>', 'mailman-join@lists.<domain>'); INSERT INTO aliases (source, destination) values ('mailman-leave@<domain>', 'mailman-leave@lists.<domain>'); INSERT INTO aliases (source, destination) values ('mailman-owner@<domain>', 'mailman-owner@lists.<domain>'); INSERT INTO aliases (source, destination) values ('mailman-request@<domain>', 'mailman-request@lists.<domain>'); INSERT INTO aliases (source, destination) values ('mailman-subscribe@<domain>', 'mailman-subscribe@lists.<domain>'); INSERT INTO aliases (source, destination) values ('mailman-unsubscribe@<domain>', 'mailman-unsubscribe@lists.<domain>');
Checken, ob die Datei /etc/postfix/master.cf folgende Zeilen enthält (sollte standardmäßig enthalten sein):
mailman unix - n n - - pipe flags=FR user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py ${nexthop} ${user}
Die Relay-Domains können auf 2 Arten definiert werden - als MySQL-Datenbank oder als Datei:
Transport-MySQL
Datenbank erstellen:
mysql -u root -p mysql> use mails; mysql> CREATE TABLE transports (id INT UNSIGNED AUTO_INCREMENT NOT NULL, domain VARCHAR(128) NOT NULL default '', transport VARCHAR(128) NOT NULL default '', UNIQUE (id), PRIMARY KEY (domain)); mysql> INSERT INTO `transports` (`domain`, `transport`) VALUES ('lists.<domain>', 'mailman:'); mysql> quit;
In der Datei /etc/postfix/main.cf folgende Zeilen eintragen:
transport_maps = mysql:/etc/postfix/virtual/mysql-transport.cf relay_domains = $transport_maps
Eingetragenen Dateipfad erstellen:
sudo touch /etc/postfix/virtual/mysql-transport.cf
Datei /etc/postfix/virtual/mysql-transport.cf mit folgenden Inhalt befüllen:
user = mailserver password = <password> hosts = <server ip> dbname = mails query = SELECT transport FROM transports WHERE domain='%d'
Transport-Datei
Neue Datei /etc/postfix/transport anlegen:
cd /etc/postfix/ sudo su echo "lists.<domain> mailman:" > transport exit sudo postmap -v transport
In der Datei /etc/postfix/main.cf am Ende folgende Zeilen hinzufügen:
relay_domains = lists.<domain> transport_maps = hash:/etc/postfix/transport mailman_destination_recipient_limit = 1
sudo /etc/init.d/postfix reload
Apache
sudo cp /etc/mailman/apache.conf /etc/apache2/conf-available/mailman.conf sudo cp /etc/mailman/apache.conf /etc/apache2/sites-available/mailman-ssl.conf
sudo mkdir /var/www/lists/ sudo chown -R www-data:www-data /var/www/lists/
sudo a2enmod cgi sudo /etc/init.d/apache2 restart
Aufruf über DNS lists.kirner.or.at
In der Datei /etc/mailman/mm_cfg.py folgende Zeilen anpassen:
DEFAULT_URL_PATTERN = 'http://%s/'; DEFAULT_EMAIL_HOST = '<domain>' DEFAULT_URL_HOST = 'lists.<domain>'
Danach Mailman starten:
sudo /etc/init.d/mailman start
Die Datei /etc/apache2/sites-available/mailman.conf muss folgenden Inhalt haben:
<VirtualHost *:80> ServerName lists.<domain> DocumentRoot /var/www/lists/ ErrorLog /var/log/apache2/lists-error.log CustomLog /var/log/apache2/lists-access.log combined <Directory /var/lib/mailman/archives/> Options 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>
Konfiguration aktivieren:
cd /etc/apache2/sites-available/ sudo a2ensite mailman sudo /etc/init.d/apache2 reload
Damit die Seite auch direkt über http://lists.kirner.or.at aufgerufen werden kann, muss in der Datei /var/www/lists/index.html noch folgender Inhalt vorhanden sein:
<html> <body> <script> location.href="http://lists.<domain>/listinfo" </script> </body> </html>
Verbindung mit SSL absichern
Inhalt der Datei /etc/apache2/sites-available/mailman.conf durch folgende Zeilen ersetzen:
<VirtualHost *:80> ServerName lists.<domain> ServerAlias lists.<domain> Redirect / https://lists.<domain>/ </VirtualHost>
Aufruf über <IP>/mailman/
Wenn mailman über die IP-Adresse aufgerufen wird, dann muss folgende Zeile in der Datei /etc/mailman/mm_cfg.py angepaßt werden:
DEFAULT_URL_PATTERN = 'http://%s/mailman/';
Die Datei /etc/apache2/conf-available/mailman.conf muss folgenden Inhalt haben:
Alias /pipermail/ /var/lib/mailman/archives/public/ Alias /images/mailman/ /usr/share/images/mailman/ ScriptAlias /mailman/ /usr/lib/cgi-bin/mailman/ <Directory /usr/lib/cgi-bin/mailman/> AllowOverride None Options ExecCGI AddHandler cgi-script .cgi Order allow,deny Allow from all </Directory> <Directory /var/lib/mailman/archives/public/> Options FollowSymlinks AllowOverride None Order allow,deny Allow from all </Directory> <Directory /usr/share/images/mailman/> AllowOverride None Order allow,deny Allow from all </Directory>
Konfiguration aktivieren:
cd /etc/apache2/conf-available/ sudo a2enconf mailman sudo /etc/init.d/apache2 reload
Danach kann Mailman unter folgender URL aufgerufen werden:
http://<IP>/mailman/listinfo/
Abschluß
Nachdem alle Konfigurationen abgeschlossen worden sind, kann man die erste Liste anlegen:
sudo newlist mailman
Administration
Seitenpasswort setzen:
mmsitepass
Bedienung
Mitglieds-Optionen:
http://lists.<domain>/options/<list name>/<mail address>
Probleme
Falsche URL in Mails
Wenn in Mailing-Listen falsche URLs enthalten sind, dann müßen diese aktualisiert werden:
sudo /usr/lib/mailman/bin/withlist -l -r fix_url <listname> --urlhost=lists.<domain>
Links
https://help.ubuntu.com/community/Mailman
http://freemars.org/howto/mailman.html
https://www.howtoforge.com/how-to-install-and-configure-mailman-with-postfix-on-debian-squeeze
http://wiki.list.org/DOC/4.27%20Securing%20Mailman's%20web%20GUI%20by%20using%20Secure%20HTTP-SSL
https://mail.python.org/pipermail/mailman-users/2010-June/069610.html
http://www.list.org/mailman-install/node9.html
http://free-electrons.com/blog/mailman-howto-ubuntu-10-04/
Zurück zu Mailserver einrichten