<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki.htw.stura-dresden.de/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=89.247.67.92</id>
	<title>Wiki StuRa HTW Dresden - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.htw.stura-dresden.de/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=89.247.67.92"/>
	<link rel="alternate" type="text/html" href="https://wiki.htw.stura-dresden.de/index.php?title=Spezial:Beitr%C3%A4ge/89.247.67.92"/>
	<updated>2026-04-16T15:00:37Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.44.3</generator>
	<entry>
		<id>https://wiki.htw.stura-dresden.de/index.php?title=StuRa:Server/srs14&amp;diff=38896</id>
		<title>StuRa:Server/srs14</title>
		<link rel="alternate" type="text/html" href="https://wiki.htw.stura-dresden.de/index.php?title=StuRa:Server/srs14&amp;diff=38896"/>
		<updated>2018-02-24T17:36:23Z</updated>

		<summary type="html">&lt;p&gt;89.247.67.92: /* Postfix */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
[[PT]] und [[bommel]] 2018-02-09 bauen nach der Doku [[Server/Jails/SRS14]].&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: pkg update&lt;br /&gt;
: pkg install apache24 postfix maildrop sudo&lt;br /&gt;
&lt;br /&gt;
Mailman muss aus den Ports gebaut werden, weil die Paket sendmail als MTA unterstuetzt, wir aber Postfix benoetigen.&lt;br /&gt;
&lt;br /&gt;
: portsnap fetch extract&lt;br /&gt;
: cd /usr/ports/mail/mailman&lt;br /&gt;
: ALLOW_UNSUPPORTED_SYSTEM=1 make config&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
     DOCS=on: Build and/or install documentation&lt;br /&gt;
     HTDIG=off: - EXPERIMENTAL - htdig integration patches&lt;br /&gt;
     NAMAZU2=off: Make private archives searchable with namazu2&lt;br /&gt;
     NLS=on: Native Language Support&lt;br /&gt;
 Integrate with which MTA?: you have to select exactly one of them&lt;br /&gt;
     COURIER=off: for use with courier&lt;br /&gt;
     EXIM4=off: for use with exim4&lt;br /&gt;
     OPENSMTPD=off: for use with opensmtpd - EXPERIMENTAL -&lt;br /&gt;
     POSTFIX=on: for use with postfix&lt;br /&gt;
     SENDMAIL=off: for use with sendmail&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
: ALLOW_UNSUPPORTED_SYSTEM=1 make install&lt;br /&gt;
&lt;br /&gt;
INFO: Alle folgenden Abfragen im build-Prozess werden mit der vorgeschlagenden Einstellung uebernommen.&lt;br /&gt;
&lt;br /&gt;
== Konfiguration ==&lt;br /&gt;
&lt;br /&gt;
=== Dienste ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;/etc/rc.conf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apache24_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
mailman_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
postfix_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
sendmail_enable=&amp;quot;NO&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Konten ===&lt;br /&gt;
&lt;br /&gt;
Hinzufuegen von System Konten.&lt;br /&gt;
&lt;br /&gt;
==== Mail - Angestellten ====&lt;br /&gt;
: Rossberg&lt;br /&gt;
Shell: nologin&lt;br /&gt;
&lt;br /&gt;
 remote: cd /home/rossberg &amp;amp;&amp;amp; tar -cvf rossberg.tar .mailfilter Mail .mail_aliases .rhosts&lt;br /&gt;
 cd /home/rossberg &amp;amp;&amp;amp; tar -xvf rossberg.tar&lt;br /&gt;
&lt;br /&gt;
==== Mail - spam ====&lt;br /&gt;
: Spam&lt;br /&gt;
Shell: nologin&lt;br /&gt;
&lt;br /&gt;
==== Aliases ====&lt;br /&gt;
&#039;&#039;&#039;/etc/aliases.stura&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 newaliases&lt;br /&gt;
 postmap /etc/aliases.stura&lt;br /&gt;
&lt;br /&gt;
=== Postfix ===&lt;br /&gt;
&#039;&#039;&#039;/usr/local/etc/postfix/main.cf&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
myhostname = mail.stura.htw-dresden.de&lt;br /&gt;
&lt;br /&gt;
mydomain = stura.htw-dresden.de &lt;br /&gt;
&lt;br /&gt;
smtp_bind_address = 141.56.50.14&lt;br /&gt;
&lt;br /&gt;
myorigin = $myhostname&lt;br /&gt;
&lt;br /&gt;
inet_interfaces = all&lt;br /&gt;
&lt;br /&gt;
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain&lt;br /&gt;
&lt;br /&gt;
local_recipient_maps = unix:passwd.byname $alias_maps&lt;br /&gt;
&lt;br /&gt;
# 141.56.16.134 - 141.56.16.136 mailexchanger vom RZ&lt;br /&gt;
# 141.56.16.231 - 232 mailrelay vom RZ&lt;br /&gt;
mynetworks = 141.56.16.131, 141.56.16.134, 141.56.16.135, 141.56.16.136, 141.56.16.231, 141.56.16.232, 141.56.50.0/26, 127.0.0.0/24, 192.168.100.12&lt;br /&gt;
&lt;br /&gt;
alias_maps = hash:/etc/aliases, hash:/etc/aliases.stura, hash:/usr/local/mailman/data/aliases&lt;br /&gt;
&lt;br /&gt;
alias_database = hash:/etc/aliases, hash:/etc/aliases.stura&lt;br /&gt;
&lt;br /&gt;
home_mailbox = Mail/&lt;br /&gt;
&lt;br /&gt;
mail_spool_directory = /var/mail&lt;br /&gt;
mailbox_command = /usr/local/bin/maildrop -d ${USER}&lt;br /&gt;
&lt;br /&gt;
header_checks = pcre:$config_directory/header_checks&lt;br /&gt;
&lt;br /&gt;
smtpd_sender_restrictions =&lt;br /&gt;
    permit_mynetworks,&lt;br /&gt;
    reject_non_fqdn_sender,&lt;br /&gt;
    reject_unknown_sender_domain,&lt;br /&gt;
    reject_rhsbl_sender blackhole.securitysage.com&lt;br /&gt;
&lt;br /&gt;
smtpd_recipient_restrictions =&lt;br /&gt;
    reject_invalid_hostname,&lt;br /&gt;
    reject_unknown_recipient_domain,&lt;br /&gt;
    check_client_access hash:/usr/local/etc/postfix/rbl_override,&lt;br /&gt;
    reject_rbl_client sbl.spamhaus.org,&lt;br /&gt;
    permit&lt;br /&gt;
&lt;br /&gt;
smtpd_helo_restrictions = &lt;br /&gt;
    permit_mynetworks,&lt;br /&gt;
    reject_invalid_helo_hostname,&lt;br /&gt;
    reject_non_fqdn_helo_hostname,&lt;br /&gt;
    reject_unknown_helo_hostname&lt;br /&gt;
 &lt;br /&gt;
smtpd_client_restrictions = &lt;br /&gt;
    permit_mynetworks,&lt;br /&gt;
    reject_rbl_client bl.spamcop.net,&lt;br /&gt;
    reject_rbl_client dnsbl.sorbs.net&lt;br /&gt;
&lt;br /&gt;
smtpd_relay_restrictions =&lt;br /&gt;
    permit_mynetworks,&lt;br /&gt;
    defer_unauth_destination&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;/usr/local/etc/postfix/master.cf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Aktivate Mailman wrapper Script&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mailman   unix  -       n       n       -       -       pipe&lt;br /&gt;
  flags=FR user=mailman:mailman argv=/usr/local/mailman/postfix-to-mailman.py ${nexthop} ${user}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;/usr/local/etc/postfix/header_checks&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/^X-HTW-Spam-Flag:\s+YES/   REDIRECT spam@stura.htw-dresden.de&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;/usr/local/etc/postfix/rbl_override&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;rz mail server als domain und ip-adresse&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;/usr/local/etc/postfix/relay_recipients&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
@stura.htw-dresden.de OK&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;s&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;/usr/local/etc/postfix/transport&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
kss-sachsen.de smtp:lrs0x018.kss-sachsen.de&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/s&amp;gt;&lt;br /&gt;
erstellen von Datenbank Dateien&lt;br /&gt;
 postmap rbl_override relay_recipients &amp;lt;s&amp;gt;transport&amp;lt;/s&amp;gt; header_checks&lt;br /&gt;
&lt;br /&gt;
starte postfix&lt;br /&gt;
 $ service postfix restart&lt;br /&gt;
 postfix: Postfix is running with backwards-compatible default settings&lt;br /&gt;
 postfix: See http://www.postfix.org/COMPATIBILITY_README.html for details&lt;br /&gt;
 postfix: To disable backwards compatibility use &amp;quot;postconf compatibility_level=2&amp;quot; and &amp;quot;postfix reload&amp;quot;&lt;br /&gt;
 postfix/postfix-script: starting the Postfix mail system&lt;br /&gt;
&lt;br /&gt;
=== Apache ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;/usr/local/etc/apache24/httpd.conf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
ServerAdmin webmaster@stura.htw-dresden.de&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
ServerName lists.stura.htw-dresden.de:80&lt;br /&gt;
...&lt;br /&gt;
# Virtual hosts&lt;br /&gt;
Include etc/apache24/extra/httpd-vhosts.conf&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;/usr/local/etc/apache24/extra/httpd-vhosts.conf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;VirtualHost lists.stura.htw-dresden.de:80&amp;gt;&lt;br /&gt;
   ServerAdmin webmaster@stura.htw-dresden.de&lt;br /&gt;
   DocumentRoot &amp;quot;/usr/local/mailman/lists&amp;quot;&lt;br /&gt;
   ServerName lists.stura.htw-dresden.de&lt;br /&gt;
   ServerAlias lists.stura.htw-dresden.de&lt;br /&gt;
   &amp;lt;Directory /usr/local/mailman/archives/&amp;gt;&lt;br /&gt;
       Options FollowSymLinks&lt;br /&gt;
       AllowOverride None&lt;br /&gt;
   &amp;lt;/Directory&amp;gt;&lt;br /&gt;
   Alias /pipermail/ /usr/local/mailman/archives/public/&lt;br /&gt;
   Alias /images/mailman/ /usr/share/images/mailman/&lt;br /&gt;
   ScriptAlias /admin /usr/local/mailman/cgi-bin/admin&lt;br /&gt;
   ScriptAlias /admindb /usr/local/mailman/cgi-bin/admindb&lt;br /&gt;
   ScriptAlias /confirm /usr/local/mailman/cgi-bin/confirm&lt;br /&gt;
   ScriptAlias /create /usr/local/mailman/cgi-bin/create&lt;br /&gt;
   ScriptAlias /edithtml /usr/local/mailman/cgi-bin/edithtml&lt;br /&gt;
   ScriptAlias /listinfo /usr/local/mailman/cgi-bin/listinfo&lt;br /&gt;
   ScriptAlias /options /usr/local/mailman/cgi-bin/options&lt;br /&gt;
   ScriptAlias /private /usr/local/mailman/cgi-bin/private&lt;br /&gt;
   ScriptAlias /rmlist /usr/local/mailman/cgi-bin/rmlist&lt;br /&gt;
   ScriptAlias /roster /usr/local/mailman/cgi-bin/roster&lt;br /&gt;
   ScriptAlias /subscribe /usr/local/mailman/cgi-bin/subscribe&lt;br /&gt;
   ScriptAlias /mailman/ /usr/local/mailman/cgi-bin/&lt;br /&gt;
   ScriptAlias / /usr/local/mailman/cgi-bin/listinfo&lt;br /&gt;
   &amp;lt;Directory &amp;quot;/usr/local/mailman&amp;quot;&amp;gt;&lt;br /&gt;
      AllowOverride All&lt;br /&gt;
      Options FollowSymlinks&lt;br /&gt;
      Require all granted&lt;br /&gt;
   &amp;lt;/Directory&amp;gt;&lt;br /&gt;
   ErrorLog /var/log/mailman-error.log&lt;br /&gt;
#   CustomLog /var/log/mailman-access.log combined&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== maildrop ===&lt;br /&gt;
&lt;br /&gt;
MDA: maildrop&lt;br /&gt;
&lt;br /&gt;
maildir in users homeverzeichnis anlegen&lt;br /&gt;
&lt;br /&gt;
  maildrop-maildirmake Mail&lt;br /&gt;
&lt;br /&gt;
im Homeverzeichnis die Datei .mailfilter anlegen:&lt;br /&gt;
&lt;br /&gt;
  MAILBOX=&amp;quot;$HOME/Mail&amp;quot;&lt;br /&gt;
  DEFAULT=&amp;quot;$MAILBOX&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  chmod 600 .mailfilter&lt;br /&gt;
  chown &amp;lt;user&amp;gt; .mailfilter&lt;br /&gt;
&lt;br /&gt;
maildrop in postfix main.cf einarbeiten&lt;br /&gt;
&lt;br /&gt;
  mailbox_command = /usr/local/bin/maildrop -d ${USER}&lt;br /&gt;
&lt;br /&gt;
=== Mailman ===&lt;br /&gt;
: Mailmanumzug :[[http://www.vuksan.com/linux/mailman_moving_lists.html]]&lt;br /&gt;
&lt;br /&gt;
 remote: cd /usr/local/mailman &amp;amp;&amp;amp; tar -cvf mailman.tar archives data lists Mailman/mm_cfg.py&lt;br /&gt;
 cd /usr/local/mailman &amp;amp;&amp;amp; tar xvf mailman.tar&lt;br /&gt;
&lt;br /&gt;
==== Mailman/mm_cfg.py ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
MTA = &#039;Postfix&#039;&lt;br /&gt;
POSTFIX_ALIAS_CMD = &#039;/usr/local/sbin/postalias&#039;&lt;br /&gt;
POSTFIX_MAP_CMD = &#039;/usr/local/sbin/postmap&#039;&lt;br /&gt;
SMTPHOST = &#039;localhost&#039;&lt;br /&gt;
# The default language for this server.&lt;br /&gt;
DEFAULT_SERVER_LANGUAGE = &#039;de&#039;&lt;br /&gt;
# Unset send_reminders on newly created lists&lt;br /&gt;
DEFAULT_SEND_REMINDERS = 0&lt;br /&gt;
DEFAULT_SEND_WELCOME_MSG = 0&lt;br /&gt;
DEFAULT_SEND_GOODBYE_MSG = 0&lt;br /&gt;
DEFAULT_ADMIN_NOTIFY_MCHANGES = 1&lt;br /&gt;
DEFAULT_NEW_MEMBER_OPTIONS = 272&lt;br /&gt;
DEFAULT_RESPOND_TO_POST_REQUESTS = 0 &lt;br /&gt;
DEFAULT_ADMINISTRIVIA = 0&lt;br /&gt;
DEFAULT_MAX_MESSAGE_SIZE = 0&lt;br /&gt;
DEFAULT_MAX_NUM_RECIPIENTS = 0&lt;br /&gt;
DEFAULT_REQUIRE_EXPLICIT_DESTINATION = 0&lt;br /&gt;
# SUBSCRIBE POLICY&lt;br /&gt;
# 0 - open list (only when ALLOW_OPEN_SUBSCRIBE is set to 1) **&lt;br /&gt;
# 1 - confirmation required for subscribes&lt;br /&gt;
# 2 - admin approval required for subscribes&lt;br /&gt;
# 3 - both confirmation and admin approval required&lt;br /&gt;
#&lt;br /&gt;
# ** please do not choose option 0 if you are not allowing open&lt;br /&gt;
# subscribes (next variable)&lt;br /&gt;
DEFAULT_SUBSCRIBE_POLICY = 3&lt;br /&gt;
# Does this site allow completely unchecked subscriptions?&lt;br /&gt;
ALLOW_OPEN_SUBSCRIBE = Yes&lt;br /&gt;
&lt;br /&gt;
# Private_roster == 0: anyone can see, 1: members only, 2: admin only.&lt;br /&gt;
DEFAULT_PRIVATE_ROSTER = 0&lt;br /&gt;
&lt;br /&gt;
# Are archives public or private by default?&lt;br /&gt;
# 0=public, 1=private&lt;br /&gt;
DEFAULT_ARCHIVE_PRIVATE = 1&lt;br /&gt;
&lt;br /&gt;
# What shold happen to non-member posts which are do not match explicit&lt;br /&gt;
# non-member actions?&lt;br /&gt;
# 0 = Accept&lt;br /&gt;
# 1 = Hold&lt;br /&gt;
# 2 = Reject&lt;br /&gt;
# 3 = Discard&lt;br /&gt;
DEFAULT_GENERIC_NONMEMBER_ACTION = 0&lt;br /&gt;
#POSTFIX_STYLE_VIRTUAL_DOMAINS = [&#039;stura.htw-dresden.de&#039;]&lt;br /&gt;
# Put YOUR site-specific settings below this line.&lt;br /&gt;
DEFAULT_URL_PATTERN = &#039;http://%s/&#039;&lt;br /&gt;
DEFAULT_EMAIL_HOST = &#039;stura.htw-dresden.de&#039;&lt;br /&gt;
DEFAULT_URL_HOST = &#039;lists.stura.htw-dresden.de&#039;&lt;br /&gt;
add_virtualhost(DEFAULT_URL_HOST, DEFAULT_EMAIL_HOST)&lt;br /&gt;
add_virtualhost(&#039;lists.htw.stura-dresden.de&#039;,DEFAULT_EMAIL_HOST)&lt;br /&gt;
OWNERS_CAN_DELETE_THEIR_OWN_LISTS = &#039;YES&#039;&lt;br /&gt;
VIRTUAL_HOST_OVERVIEW = On&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== postfix-to-mailman.py ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#! /usr/local/bin/python&lt;br /&gt;
&lt;br /&gt;
# Configuration variables - Change these for your site if necessary.&lt;br /&gt;
MailmanHome = &amp;quot;/usr/local/mailman&amp;quot;; # Mailman home directory.&lt;br /&gt;
MailmanOwner = &amp;quot;postmaster@stura.htw-dresden.de&amp;quot;; # Postmaster and abuse mail recipient.&lt;br /&gt;
# End of configuration variables.&lt;br /&gt;
&lt;br /&gt;
# postfix-to-mailman-2.1.py (to be installed as postfix-to-mailman.py)&lt;br /&gt;
#&lt;br /&gt;
# Interface mailman to a postfix with a mailman transport. Does not require&lt;br /&gt;
# the creation of _any_ aliases to connect lists to your mail system.&lt;br /&gt;
#&lt;br /&gt;
# Dax Kelson, dkelson@gurulabs.com, Sept 2002.&lt;br /&gt;
# coverted from qmail to postfix interface&lt;br /&gt;
# Jan 2003: Fixes for Mailman 2.1&lt;br /&gt;
# Thanks to Simen E. Sandberg &amp;lt;senilix@gallerbyen.net&amp;gt;&lt;br /&gt;
# Feb 2003: Change the suggested postfix transport to support VERP&lt;br /&gt;
# Thanks to Henrique de Moraes Holschuh &amp;lt;henrique.holschuh@ima.sp.gov.br&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
# This script was originally qmail-to-mailman.py by:&lt;br /&gt;
# Bruce Perens, bruce@perens.com, March 1999.&lt;br /&gt;
# This is free software under the GNU General Public License.&lt;br /&gt;
#&lt;br /&gt;
# This script is meant to be called from ~mailman/postfix-to-mailman.py. &lt;br /&gt;
# It catches all mail to a virtual domain, eg &amp;quot;lists.example.com&amp;quot;.&lt;br /&gt;
# It looks at the  recipient for each mail message and decides if the mail is&lt;br /&gt;
# addressed to a valid list or not, and bounces the message with a helpful&lt;br /&gt;
# suggestion if it&#039;s not addressed to a list. It decides if it is a posting, &lt;br /&gt;
# a list command, or mail to the list administrator, by checking for the&lt;br /&gt;
#  -admin, -owner, and -request addresses. It will recognize a list as soon&lt;br /&gt;
# as the list is created, there is no need to add _any_ aliases for any list.&lt;br /&gt;
# It recognizes mail to postmaster, mailman-owner, abuse, mailer-daemon, root,&lt;br /&gt;
# and owner, and routes those mails to MailmanOwner as defined in the&lt;br /&gt;
# configuration variables, above.&lt;br /&gt;
#&lt;br /&gt;
# INSTALLATION:&lt;br /&gt;
#&lt;br /&gt;
# Install this file as ~mailman/postfix-to-mailman.py&lt;br /&gt;
#&lt;br /&gt;
# To configure a virtual domain to connect to mailman, edit Postfix thusly:&lt;br /&gt;
#&lt;br /&gt;
# /etc/postfix/main.cf:&lt;br /&gt;
#    relay_domains = ... lists.example.com&lt;br /&gt;
#    transport_maps = hash:/etc/postfix/transport&lt;br /&gt;
#    mailman_destination_recipient_limit = 1&lt;br /&gt;
#&lt;br /&gt;
# /etc/postfix/transport:&lt;br /&gt;
#   lists.example.com   mailman:&lt;br /&gt;
#&lt;br /&gt;
# /etc/postfix/master.cf&lt;br /&gt;
#    mailman unix  -       n       n       -       -       pipe&lt;br /&gt;
#      flags=FR user=mailman:mailman &lt;br /&gt;
#      argv=/var/mailman/postfix-to-mailman.py ${nexthop} ${user}&lt;br /&gt;
# &lt;br /&gt;
#&lt;br /&gt;
# Replace list.example.com above with the name of the domain to be connected&lt;br /&gt;
# to Mailman. Note that _all_ mail to that domain will go to Mailman, so you&lt;br /&gt;
# don&#039;t want to put the name of your main domain here. Typically a virtual&lt;br /&gt;
# domain lists.domain.com is used for Mailman, and domain.com for regular&lt;br /&gt;
# email.&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
import sys, os, re, string&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    os.nice(5)  # Handle mailing lists at non-interactive priority.&lt;br /&gt;
                # delete this if you wish&lt;br /&gt;
&lt;br /&gt;
    os.chdir(MailmanHome + &amp;quot;/lists&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    try:&lt;br /&gt;
        local = sys.argv[2]&lt;br /&gt;
    except:&lt;br /&gt;
        # This might happen if we&#039;re not using Postfix&lt;br /&gt;
        sys.stderr.write(&amp;quot;LOCAL not set?\n&amp;quot;)&lt;br /&gt;
        sys.exit(1)&lt;br /&gt;
&lt;br /&gt;
    local = string.lower(local)&lt;br /&gt;
    local = re.sub(&amp;quot;^mailman-&amp;quot;,&amp;quot;&amp;quot;,local)&lt;br /&gt;
&lt;br /&gt;
    names = (&amp;quot;root&amp;quot;, &amp;quot;postmaster&amp;quot;, &amp;quot;mailer-daemon&amp;quot;, &amp;quot;mailman-owner&amp;quot;, &amp;quot;owner&amp;quot;,&lt;br /&gt;
             &amp;quot;abuse&amp;quot;)&lt;br /&gt;
    for i in names:&lt;br /&gt;
        if i == local:&lt;br /&gt;
            os.execv(&amp;quot;/usr/sbin/sendmail&amp;quot;,&lt;br /&gt;
                     (&amp;quot;/usr/sbin/sendmail&amp;quot;, MailmanOwner))&lt;br /&gt;
            sys.exit(0)&lt;br /&gt;
&lt;br /&gt;
    type = &amp;quot;post&amp;quot;&lt;br /&gt;
    types = ((&amp;quot;-admin$&amp;quot;, &amp;quot;admin&amp;quot;),&lt;br /&gt;
             (&amp;quot;-owner$&amp;quot;, &amp;quot;owner&amp;quot;),&lt;br /&gt;
             (&amp;quot;-request$&amp;quot;, &amp;quot;request&amp;quot;),&lt;br /&gt;
             (&amp;quot;-bounces$&amp;quot;, &amp;quot;bounces&amp;quot;),&lt;br /&gt;
             (&amp;quot;-confirm$&amp;quot;, &amp;quot;confirm&amp;quot;),&lt;br /&gt;
             (&amp;quot;-join$&amp;quot;, &amp;quot;join&amp;quot;),&lt;br /&gt;
             (&amp;quot;-leave$&amp;quot;, &amp;quot;leave&amp;quot;),&lt;br /&gt;
             (&amp;quot;-subscribe$&amp;quot;, &amp;quot;subscribe&amp;quot;),&lt;br /&gt;
             (&amp;quot;-unsubscribe$&amp;quot;, &amp;quot;unsubscribe&amp;quot;))&lt;br /&gt;
&lt;br /&gt;
    for i in types:&lt;br /&gt;
        if re.search(i[0],local):&lt;br /&gt;
            type = i[1]&lt;br /&gt;
            local = re.sub(i[0],&amp;quot;&amp;quot;,local)&lt;br /&gt;
&lt;br /&gt;
    if os.path.exists(local):&lt;br /&gt;
        os.execv(MailmanHome + &amp;quot;/mail/mailman&amp;quot;,&lt;br /&gt;
                 (MailmanHome + &amp;quot;/mail/mailman&amp;quot;, type, local))&lt;br /&gt;
    else:&lt;br /&gt;
        bounce()&lt;br /&gt;
    sys.exit(75)&lt;br /&gt;
&lt;br /&gt;
def bounce():&lt;br /&gt;
    bounce_message = &amp;quot;&amp;quot;&amp;quot;\&lt;br /&gt;
TO ACCESS THE MAILING LIST SYSTEM: Start your web browser on&lt;br /&gt;
http://%s/&lt;br /&gt;
That web page will help you subscribe or unsubscribe, and will&lt;br /&gt;
give you directions on how to post to each mailing list.\n&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    sys.stderr.write(bounce_message % (sys.argv[1]))&lt;br /&gt;
    sys.exit(1)&lt;br /&gt;
&lt;br /&gt;
try:&lt;br /&gt;
    sys.exit(main())&lt;br /&gt;
except SystemExit, argument:&lt;br /&gt;
    sys.exit(argument)&lt;br /&gt;
&lt;br /&gt;
except Exception, argument:&lt;br /&gt;
    info = sys.exc_info()&lt;br /&gt;
    trace = info[2]&lt;br /&gt;
    sys.stderr.write(&amp;quot;%s %s\n&amp;quot; % (sys.exc_type, argument))&lt;br /&gt;
    sys.stderr.write(&amp;quot;Line %d\n&amp;quot; % (trace.tb_lineno))&lt;br /&gt;
    sys.exit(75)       # Soft failure, try again later.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>89.247.67.92</name></author>
	</entry>
</feed>