Mailman

Aus Tutorials
Zur Navigation springen Zur Suche springen

Noch in Bearbeitung


Installation

sudo apt-get install mailman

Konfiguration

newlist mailman
sudo newlist mailman
## mailman Mailingliste
mailman:              "|/var/lib/mailman/mail/mailman post mailman"
mailman-admin:        "|/var/lib/mailman/mail/mailman admin mailman"
mailman-bounces:      "|/var/lib/mailman/mail/mailman bounces mailman"
mailman-confirm:      "|/var/lib/mailman/mail/mailman confirm mailman"
mailman-join:         "|/var/lib/mailman/mail/mailman join mailman"
mailman-leave:        "|/var/lib/mailman/mail/mailman leave mailman"
mailman-owner:        "|/var/lib/mailman/mail/mailman owner mailman"
mailman-request:      "|/var/lib/mailman/mail/mailman request mailman"
mailman-subscribe:    "|/var/lib/mailman/mail/mailman subscribe mailman"
mailman-unsubscribe:  "|/var/lib/mailman/mail/mailman unsubscribe mailman"
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>');

Postfix

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>

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/

Administration

Seitenpasswort setzen:

mmsitepass

Probleme

Falsche URL in Mails

Wenn in Mailing-Listen falsche URLs enthalten:

sudo /usr/share/mailman/bin/withlist -l -r fix_url <listname> --urlhost=lists.<domain>

Links

https://www.howtoforge.com/perfect-server-ubuntu-14.04-apache2-php-mysql-pureftpd-bind-dovecot-ispconfig-3-p4#g0.0.15

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

http://list.org/

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/

http://www.list.org/site.html


Zurück zu Mailserver einrichten