# [Server] Mailman, postfix und dovecot

## Finswimmer

Hi,

über kurz oder lang möchte ich meinen vServer richtig nutzen.

Zu Beginn war er nur zum Spielen da, dann brauchte ich mailman. Eingerichtet und es lief.

Jetzt habe ich dovecot installiert, um Mails zu empfangen und über Imap bzw. roundcube abfragen zu können.

Seitdem macht mailman nichts mehr.

So sieht es aus, wenn ich an eine Mailing-Liste schreibe:

```
Feb 24 09:38:46 h1932716 postfix/smtpd[17837]: connect from mo-p05-ob.rzone.de[IP]

Feb 24 09:38:46 h1932716 dovecot: auth(default): new auth connection: pid=17837

Feb 24 09:38:46 h1932716 postfix/smtpd[17837]: 6E34A15E639E: client=mo-p05-ob.rzone.de[IP]

Feb 24 09:38:46 h1932716 postfix/cleanup[17841]: 6E34A15E639E: message-id=<5129D195.5050709@xxx.de>

Feb 24 09:38:46 h1932716 postfix/smtpd[17837]: disconnect from mo-p05-ob.rzone.de[IP]

Feb 24 09:38:46 h1932716 postfix/qmgr[18377]: 6E34A15E639E: from=<email>, size=985, nrcpt=1 (queue active)

Feb 24 09:38:46 h1932716 dovecot: auth(default): master in: USER^I1^Itobi@server.de^Iservice=deliver

Feb 24 09:38:46 h1932716 dovecot: auth(default): passwd(tobi@server.de): lookup

Feb 24 09:38:46 h1932716 dovecot: auth(default): passwd(tobi@server.de): unknown user

Feb 24 09:38:46 h1932716 dovecot: auth(default): master out: USER^I1^Itobi@server.de^Iuid=5000^Igid=5000^Ihome=/home/vmail/server.de/tobi

Feb 24 09:38:47 h1932716 postfix/pipe[17842]: 6E34A15E639E: to=<tobi@server.de>, orig_to=<mailingliste@server.de>, relay=dovecot, delay=0.73, delays=0.23/0.03/0/0.47, dsn=2.0.0, status=sent (delivered via dovecot service)

Feb 24 09:38:47 h1932716 postfix/qmgr[18377]: 6E34A15E639E: removed

```

Irgendwie bin ich mit der ganzen Konfiguration noch (etwas) überfordert.

Warum leitet postfix das nicht an die Mailing-Liste weiter und gibt es stattdessen an dovecot raus?

Und warum versucht der dann die Adresse dem User "tobi" zuzuordnen? Obwohl die Email-Adrese ganz anders ist?

Ich hoffe, ihr könnt ein bisschen Licht ins Dunkle bringen!

Danke

Tobi

----------

## cryptosteve

Moin,

wie sieht denn deine /etc/aliases aus?

Mein Setup funktioniert im Prinzip so:

Postfix nimmt die Mails an (smtp)

Mails für mailman werden anhand der /etc/aliases rausgeangelt und vom Mailinglistenprogramm bearbeitet (mailman)

die übrigen Mails schiebt postfix ins maildir

die Mails werden über IMAP zum Abruf bereitgestellt (dovecot)

für die Mails, die online im Browser gelesen werden soll, ist roundcube zuständig

Ich habe dovecot also nur für den Zugriff aufs Maildir konfiguriert.

----------

## Finswimmer

So würde ich es ja auch gerne haben.

Mehr braucht man fürs Erste ja nicht. (Gut ich habe versucht, postfix über virtual user zu nutzen)

```
cat /root@h1932716:~# cat /etc/aliases

# /etc/aliases

mailer-daemon: postmaster

postmaster: root

nobody: root

hostmaster: root

usenet: root

news: root

webmaster: root

www: root

ftp: root

abuse: root

noc: root

security: root

test: test

test2: test2

root: root

#tobi: tobi

## 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"

```

Das müsste doch soweit passen, oder?

----------

## py-ro

Hast auch daran gedacht die entsprechenden DB Dateien zu erzeugen?

----------

## Finswimmer

Ich denke schon.

Ich habe newaliases aufgerufen.

Und die postmap bei den ganzen hash: Einträgen.

----------

## Finswimmer

*bump*

Hat jemand vielleicht noch einen Tipp?

Ich bin da im moment irgendwie so verfahren, dass ich nichts mehr hinbekomme...

----------

## misterjack

Paste mal bitte (anonymisiert) deine main.cf/master.cf von Postfix. Da sollte der Hase begraben sein, wenn das über Dovecot und nicht Mailman läuft.

----------

## Finswimmer

main.cf:

```
# See /usr/share/postfix/main.cf.dist for a commented, more complete version

# Debian specific:  Specifying a file name will cause the first

# line of that file to be used as the name.  The Debian default

# is /etc/mailname.

#myorigin = /etc/mailname

smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)

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

# TLS parameters

smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem

smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key

smtpd_use_tls=yes

smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache

smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

#vhost with mysql params

#virtual_alias_domains needs to be unset

#virtual_alias_domains =

#virtual_mailbox_domains = domain.de

virtual_mailbox_domains = mysql:/etc/postfix/virtual/mysql-virtual-mailbox-domains.cf

virtual_mailbox_maps = mysql:/etc/postfix/virtual/mysql-virtual-mailbox-maps.cf

#virtual_alias_maps = mysql:/etc/postfix/virtual/mysql-virtual-alias-maps.cf, mysql:/etc/postfix/virtual/mysql-virtual-email2email.cf

virtual_alias_maps =  hash:/var/lib/mailman/data/virtual-mailman, mysql:/etc/postfix/virtual/mysql-virtual-alias-maps.cf, mysql:/etc/postfix/virtual/mysql-virtual-email2email.cf

virtual_uid_maps = static:5000

virtual_gid_maps = static:5000

virtual_transport = dovecot

virtual_mailbox_base = /var/vmail/

dovecot_destination_recipient_limit = 1

myhostname = domain.de

alias_maps = hash:/var/lib/mailman/data/aliases ,hash:/etc/aliases

alias_database = hash:/etc/aliases

myorigin = /etc/mailname

relayhost = 

mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128

#mailbox_command = procmail -a "$EXTENSION"

mailbox_size_limit = 0

recipient_delimiter = +

inet_interfaces = all

smtpd_sasl_type = dovecot

smtpd_sasl_path = private/auth

smtpd_sasl_auth_enable = yes

smtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination

home_mailbox = Maildir/

mydestination = localhost

relay=domains = $mydestination

readme_directory = no

# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for

# information on enabling SSL in the smtp client.

relay_domains = lists.domain.de

transport_maps = hash:/etc/postfix/transport

mailman_destination_recipient_limit = 1

```

master.cf

```

#

# Postfix master process configuration file.  For details on the format

# of the file, see the master(5) manual page (command: "man 5 master").

#

# Do not forget to execute "postfix reload" after editing this file.

#

# ==========================================================================

# service type  private unpriv  chroot  wakeup  maxproc command + args

#               (yes)   (yes)   (yes)   (never) (100)

# ==========================================================================

smtp      inet  n       -       -       -       -       smtpd

#submission inet n       -       -       -       -       smtpd

#  -o smtpd_tls_security_level=encrypt

#  -o smtpd_sasl_auth_enable=yes

#  -o smtpd_client_restrictions=permit_sasl_authenticated,reject

#  -o milter_macro_daemon_name=ORIGINATING

#smtps     inet  n       -       -       -       -       smtpd

#  -o smtpd_tls_wrappermode=yes

#  -o smtpd_sasl_auth_enable=yes

#  -o smtpd_client_restrictions=permit_sasl_authenticated,reject

#  -o milter_macro_daemon_name=ORIGINATING

#628       inet  n       -       -       -       -       qmqpd

pickup    fifo  n       -       -       60      1       pickup

cleanup   unix  n       -       -       -       0       cleanup

qmgr      fifo  n       -       n       300     1       qmgr

#qmgr     fifo  n       -       -       300     1       oqmgr

tlsmgr    unix  -       -       -       1000?   1       tlsmgr

rewrite   unix  -       -       -       -       -       trivial-rewrite

bounce    unix  -       -       -       -       0       bounce

defer     unix  -       -       -       -       0       bounce

trace     unix  -       -       -       -       0       bounce

verify    unix  -       -       -       -       1       verify

flush     unix  n       -       -       1000?   0       flush

proxymap  unix  -       -       n       -       -       proxymap

proxywrite unix -       -       n       -       1       proxymap

smtp      unix  -       -       -       -       -       smtp

# When relaying mail as backup MX, disable fallback_relay to avoid MX loops

relay     unix  -       -       -       -       -       smtp

        -o smtp_fallback_relay=

#       -o smtp_helo_timeout=5 -o smtp_connect_timeout=5

showq     unix  n       -       -       -       -       showq

error     unix  -       -       -       -       -       error

retry     unix  -       -       -       -       -       error

discard   unix  -       -       -       -       -       discard

local     unix  -       n       n       -       -       local

virtual   unix  -       n       n       -       -       virtual

lmtp      unix  -       -       -       -       -       lmtp

anvil     unix  -       -       -       -       1       anvil

scache    unix  -       -       -       -       1       scache

#

# ====================================================================

# Interfaces to non-Postfix software. Be sure to examine the manual

# pages of the non-Postfix software to find out what options it wants.

#

# Many of the following services use the Postfix pipe(8) delivery

# agent.  See the pipe(8) man page for information about ${recipient}

# and other message envelope options.

# ====================================================================

#

# maildrop. See the Postfix MAILDROP_README file for details.

# Also specify in main.cf: maildrop_destination_recipient_limit=1

#

maildrop  unix  -       n       n       -       -       pipe

  flags=DRhu user=vmail argv=/usr/bin/maildrop -d ${recipient}

#

# ====================================================================

#

# Recent Cyrus versions can use the existing "lmtp" master.cf entry.

#

# Specify in cyrus.conf:

#   lmtp    cmd="lmtpd -a" listen="localhost:lmtp" proto=tcp4

#

# Specify in main.cf one or more of the following:

#  mailbox_transport = lmtp:inet:localhost

#  virtual_transport = lmtp:inet:localhost

#

# ====================================================================

#

# Cyrus 2.1.5 (Amos Gouaux)

# Also specify in main.cf: cyrus_destination_recipient_limit=1

#

#cyrus     unix  -       n       n       -       -       pipe

#  user=cyrus argv=/cyrus/bin/deliver -e -r ${sender} -m ${extension} ${user}

#

# ====================================================================

# Old example of delivery via Cyrus.

#

#old-cyrus unix  -       n       n       -       -       pipe

#  flags=R user=cyrus argv=/cyrus/bin/deliver -e -m ${extension} ${user}

#

# ====================================================================

#

# See the Postfix UUCP_README file for configuration details.

#

uucp      unix  -       n       n       -       -       pipe

  flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient)

#

# Other external delivery methods.

#

ifmail    unix  -       n       n       -       -       pipe

  flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient)

bsmtp     unix  -       n       n       -       -       pipe

  flags=Fq. user=bsmtp argv=/usr/lib/bsmtp/bsmtp -t$nexthop -f$sender $recipient

scalemail-backend unix  -       n       n       -       2       pipe

  flags=R user=scalemail argv=/usr/lib/scalemail/bin/scalemail-store ${nexthop} ${user} ${extension}

mailman   unix  -       n       n       -       -       pipe

  flags=FR user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py

  ${nexthop} ${user}

dovecot   unix  -       n       n       -       -       pipe

  flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -d ${recipient}

```

Danke!

Bei der main.cf sind noch viele Kommentare drin, weil ich einiges ausprobiert habe.

Viele Grüße

Tobi

----------

## Finswimmer

*bump*

Cryptosteve: Kannst du mir vielleicht deine Configs posten?

Danke

----------

## Finswimmer

Hi,

ich habe es nun endlich geschafft. Die master.cf ist gleich.

Schlüssel waren wohl:

lists.domain.de in transport

Somit läuft Mailman auf seiner eigenen Subdomain (die auch per MX registriert sein muss)

MTA='Postfix' 

DEFAULT_URL_PATTERN = 'http://%s/'

DEFAULT_EMAIL_HOST = 'lists.domain.de'

DEFAULT_URL_HOST   = 'lists.domain.de'

in /etc/mailman/mm_cfg.py

relay_domains = lists.domain.de

in /etc/postfix/main.cf

Viele Grüße

Tobi

----------

