StuRa:Server/Mail-Verteiler: Unterschied zwischen den Versionen

Aus Wiki StuRa HTW Dresden
Zur Navigation springen Zur Suche springen
Zeile 217: Zeile 217:
** [http://www.stura.htw-dresden.de/mailman www.stura.htw-dresden.de/mailman]
** [http://www.stura.htw-dresden.de/mailman www.stura.htw-dresden.de/mailman]
* [[Mail-Verteiler#Administration funktion@stura.htw-dresden.de]]
* [[Mail-Verteiler#Administration funktion@stura.htw-dresden.de]]
* [https://de.wikipedia.org/wiki/GNU_Mailman Wikipedia: GNU Mailman]
== Weblinks ==
* [https://www.gnu.org/software/mailman/ Homepage ''Mailman, the GNU Mailing List Manager'']
** [https://www.gnu.org/software/mailman/mailman-admin/ List Administration Manual]
* [http://list.org/ GNU Mailman wiki]


[[Kategorie:Rechentechnik]]
[[Kategorie:Rechentechnik]]
[[Kategorie:Software]]
[[Kategorie:Software]]

Version vom 31. Januar 2013, 03:56 Uhr

Mailman ist der Dienst zur Bereitstellung und Anwendung von Mail-Verteilern.

Software

Mailman ist ein Software zum managen Mail-Verteilern mit einer Web-Oberfläche.

Probleme

Listen von einem bereits installierten Postfix schnell und sauber mit allen Einträgen in die Mailman-Software übertragen.

Ansatz 1 (nicht getestet)

Mit Hilfe einer Pythondatei (siehe weiter unten).

Jede Liste im Postfix muss in eine extra Datei (Postfixlistendatei), welche in der Postfixdatei .../postfix/main.cf unter dem Punkt alias_maps verwiesen wird. Dann newaliases, anschließend erstellt man alle Listen im Mailman und führt in der Konsole die Datei /usr/local/mailman/bin/newlist aus. die im Anschluß aufgelisteten Codeschnipsel werden in die richtigen "Postfixlistendateien" kopiert.

DATEI postfix-to-mailman-2.1.py :


#! /usr/local/bin/python # vom Ersteller des Artikels geaendert

# Configuration variables - Change these for your site if necessary.
MailmanHome = "/var/mailman"; # Mailman home directory.
MailmanOwner = "postmaster@example.com"; # Postmaster and abuse mail recipient.
# End of configuration variables.

# postfix-to-mailman-2.1.py (to be installed as postfix-to-mailman.py)
#
# Interface mailman to a postfix with a mailman transport. Does not require
# the creation of _any_ aliases to connect lists to your mail system.
#
# Dax Kelson, dkelson@gurulabs.com, Sept 2002.
# coverted from qmail to postfix interface
# Jan 2003: Fixes for Mailman 2.1
# Thanks to Simen E. Sandberg <senilix@gallerbyen.net>
# Feb 2003: Change the suggested postfix transport to support VERP
# Thanks to Henrique de Moraes Holschuh <henrique.holschuh@ima.sp.gov.br>
#
# This script was originally qmail-to-mailman.py by:
# Bruce Perens, bruce@perens.com, March 1999.
# This is free software under the GNU General Public License.
#
# This script is meant to be called from ~mailman/postfix-to-mailman.py. 
# It catches all mail to a virtual domain, eg "lists.example.com".
# It looks at the  recipient for each mail message and decides if the mail is
# addressed to a valid list or not, and bounces the message with a helpful
# suggestion if it's not addressed to a list. It decides if it is a posting, 
# a list command, or mail to the list administrator, by checking for the
#  -admin, -owner, and -request addresses. It will recognize a list as soon
# as the list is created, there is no need to add _any_ aliases for any list.
# It recognizes mail to postmaster, mailman-owner, abuse, mailer-daemon, root,
# and owner, and routes those mails to MailmanOwner as defined in the
# configuration variables, above.
#
# INSTALLATION:
#
# Install this file as ~mailman/postfix-to-mailman.py
#
# To configure a virtual domain to connect to mailman, edit Postfix thusly:
#
# /etc/postfix/main.cf:
#    relay_domains = ... lists.example.com
#    transport_maps = hash:/etc/postfix/transport
#    mailman_destination_recipient_limit = 1
#
# /etc/postfix/transport:
#   lists.example.com   mailman:
#
# /etc/postfix/master.cf
#    mailman unix  -       n       n       -       -       pipe
#      flags=FR user=mailman:mailman 
#      argv=/var/mailman/postfix-to-mailman.py ${nexthop} ${user}
# 
#
# Replace list.example.com above with the name of the domain to be connected
# to Mailman. Note that _all_ mail to that domain will go to Mailman, so you
# don't want to put the name of your main domain here. Typically a virtual
# domain lists.domain.com is used for Mailman, and domain.com for regular
# email.
#

import sys, os, re, string

def main():
    os.nice(5)  # Handle mailing lists at non-interactive priority.
		 # delete this if you wish

    os.chdir(MailmanHome + "/lists")

    try:
        local = sys.argv[2]
    except:
        # This might happen if we're not using Postfix
        sys.stderr.write("LOCAL not set?\n")
        sys.exit(1)

    local = string.lower(local)
    local = re.sub("^mailman-","",local)

    names = ("root", "postmaster", "mailer-daemon", "mailman-owner", "owner", "abuse")
    for i in names:
        if i == local:
            os.execv("/usr/sbin/sendmail",
                     ("/usr/sbin/sendmail", MailmanOwner))
            sys.exit(0)

    type = "post"
    types = (("-admin$", "admin"),
             ("-owner$", "owner"),
             ("-request$", "request"),
             ("-bounces$", "bounces"),
             ("-confirm$", "confirm"),
             ("-join$", "join"),
             ("-leave$", "leave"),
             ("-subscribe$", "subscribe"),
             ("-unsubscribe$", "unsubscribe"))

    for i in types:
        if re.search(i[0],local):
            type = i[1]
            local = re.sub(i[0],"",local)

    if os.path.exists(local):
        os.execv(MailmanHome + "/mail/mailman",
                 (MailmanHome + "/mail/mailman", type, local))
    else:
         bounce()
    sys.exit(75)

def bounce():
    bounce_message = """\
TO ACCESS THE MAILING LIST SYSTEM: Start your web browser on
http://%s/
That web page will help you subscribe or unsubscribe, and will
give you directions on how to post to each mailing list.\n"""
    sys.stderr.write(bounce_message % (sys.argv[1]))
    sys.exit(1)

try:
    sys.exit(main())
except SystemExit, argument:
    sys.exit(argument)

except Exception, argument:
    info = sys.exc_info()
    trace = info[2]
    sys.stderr.write("%s %s\n" % (sys.exc_type, argument))
    sys.stderr.write("Line %d\n" % (trace.tb_lineno))
    sys.exit(75)       # Soft failure, try again later.


Konzeption

Entstehung

2012-12-14 informierte Benutzer:MatthiasJakobi über das Gelingen zum Einrichtung von Mailman. Benutzer:ClemensBuncher und Benutzer:PaulRiegel probierten in der nachfolgenden Nacht erste Funktionsweisen, um einen Vorschlag für die ersatzweise Nutzung für die bestehenden Mail-Verteiler beim StuRa erarbeiten zu können.

Gedanken von vt

  • Von vt wird nicht verstanden:
    • umbrella_list (Allgemeine Optionen)
    • Wie komme ich "von allein" (ohne den Link direkt zu kennen / durch einfaches "Rumklicken") angemeldet zu der Seite für meine Optionen ('/mailman/options/mailmen/name--at--stura.htw-dresden.de'), um diese anpassen zu können.
    • regular_exclude_list (Non-Digest-Optionen)
    • regular_include_list (Non-Digest-Optionen)
    • Mail<->News Schnittstelle (Art der Protokolle (Ports)), aber interessiert nicht wirklich
    • autoresponse_graceperiode (Auotmatische Beantwortung)
    • "Themen": Könnte das wirklich nutzbringend Anwendung beim StuRa finden.

Potentiale

  • Es kann überlegt werden, ob eine Mail-Adresse anonymous_list@stura.htw-dresden.de angelegt wird, der als anonymer Absender an den StuRa weiterleitet. Die Idee kam bei dem Lesen der Option. Die Option "anonymous_list" ist unter "Allgemeine Optionen" zu finden.
  • Es sollte wiederkehrend geprüft werden, ob der Mail-Verkehr über die "öffentlichen" Mail-Verteiler nicht wirklich auch öffentlich gemacht werden sollte. Neben dem öffentlichen Mail-Verteiler müssten dann wohl besondere nicht öffentliche Mail-Verteiler angelegt werden, um "interne" Absprachen zu treffen. Krass, auf welche Ideen Mailman Menschen bringen kann.

Ernüchterung

  • Es muss für jede Liste ein Passwort für die Administration gesetzt werden. Dieses Passwort ist zentral für die Liste.
  • Es kann für jede Liste ein Passwort für die Moderation gesetzt werden. Dieses Passwort ist zentral für die Liste.

Konzeption zur Überführung bestehender Mail-Verteiler @stura.htw-dresden.de

  • Alle Listen werden von zentraler Mail-Adresse als Administrator angelegt.
    • Die Mail-Adresse lautet einheitlich mailing@stura.htw-dresden.de, mailadmin@stura.htw-dresden.de, service.mailman@stura.htw-dresden.de oder derartig.
  • Die Inhalte, bestehende Mitglieder der einzelnen Mail-Verteiler, werden als "neue" Mitglieder eingetragen.
    • Dabei werden selbstverständlich auch funktionale Mail-Adressen übernommen (etwa Referat bei mangelnder Besetzung des Bereiches).
    • Persönliche Mail-Adressen (beim StuRa) sollen nicht durch den Umzug veröffentlicht werden. Das können die Nutzerinnen und Nutzer womöglich selbst festlegen.
  • Verantwortliche für den Zuständigkeitsbereich (etwa eine Referatsleitung) werden mit ihrer persönlichen Mail-Adresse ergänzend als Moderator eingetragen.
    • Die Festlegung und das Verfahren für die Vergabe der zentralen (bezogen auf einen jeweiligen Mail-Verteiler) Passwörter für die Moderation ist unklar. Auch die Funktionen für "zur Moderation Berechtigte" ist unklar.
  • Die Zugangsdaten werden nicht von selbst versendet. Dazu muss sich dann jede Benutzerin und jeder Benutzer selbst das Passwort zusenden lassen, sich anmelden und das Passwort persönlich setzen.
  • Mit der Umstellung beginnt die Archivierung (also eine konservierende Aufzeichnung) bei allen öffentlichen Mail-Verteilern. Die Archive sind, bis zu anderen Festlegungen, privat (nicht öffentlich einsehbar) zu halten. (Es gilt zu prüfen, ob eine potentielle Veröffentlichung ab einem späteren Zeitpunkt möglich wäre.)
  • Alle öffentlichen Mail-Verteiler werden bei der zentralen Seite bei mailman /mailman/listinfo bekanntgegeben.
    (über Abo-Regeln und Adreßfilter…; über Abo-Regeln) advertised als Ja

Überführung

ClemensBuncher übernahm den ersten (wichtigen) Teil der Überführung.

Überführung Konfiguration aller Listen

Allgemeine Optionen (/general)
  • send_reminders auf Nein setzen
  • send_welcome_msg auf Nein setzen
  • admin_notify_mchanges auf Ja setzen
  • respond_to_post_requests auf Nein setzen
  • new_member_options Listenmitgliedschaft nicht öffentlich anzeigen auswählen
  • administravia auf Nein setzen
  • max_message_size 0 eintragen
Abo-Regeln und Adreßfilter... (/privacy)
Abo-Regeln (/privacy/subscribing)
  • subscribe_policy auf Bestätigung und Genehmigung setzen
Absender-Filter (/privacy/sender)
  • generic_nonmember_action auf Akzeptieren setzen
Empfänger-Filter (/privacy/recipient)
  • require_explicit_destionation auf Nein setzen
Archivierungsoptionen (/archive)
  • archive_private auf privat setzen

Siehe auch

Weblinks