I've followed the perfect installation instructions. I used Till's instructions to get Postfix and Dovecot to play nicely. Postfix and Dovecot are running, mailman web interface works, user subscription via the GUI works, it's all great.. except. It seems like Dovecot is blocking emails destined for mailman. From the log, the email doesn't get to mailman. It appeared to die here: Jan 31 14:14:25 scorponok dovecot: auth-worker: mysql(localhost): Connected to database dbispconfig Jan 31 14:14:25 scorponok postfix/pipe[29977]: A99271D00BB1: to=<[email protected]>, relay=dovecot, delay=0.37, delays=0.04/0.02/0/0.31, dsn=5.1.1, status=bounced (user unknown) dovecot.conf Code: protocols = imap pop3 auth_mechanisms = plain login disable_plaintext_auth = no log_timestamp = "%Y-%m-%d %H:%M:%S " mail_privileged_group = vmail ssl_cert = </etc/postfix/smtpd.cert ssl_key = </etc/postfix/smtpd.key passdb { args = /etc/dovecot/dovecot-sql.conf driver = sql } userdb { args = /etc/dovecot/dovecot-sql.conf driver = sql } plugin { quota = dict:user::file:/var/vmail/%d/%n/.quotausage sieve=/var/vmail/%d/%n/.sieve } service auth { unix_listener /var/spool/postfix/private/auth { group = postfix mode = 0660 user = postfix } unix_listener auth-userdb { group = vmail mode = 0600 user = vmail } user = root } protocol imap { mail_plugins = quota imap_quota } protocol pop3 { pop3_uidl_format = %08Xu%08Xv mail_plugins = quota } protocol lda { mail_plugins = sieve quota } postfix/main.cf Code: smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu) biff = no append_dot_mydomain = no readme_directory = /usr/share/doc/postfix # TLS parameters smtpd_tls_cert_file = /etc/postfix/smtpd.cert smtpd_tls_key_file = /etc/postfix/smtpd.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 myhostname = mydomain.host.xx alias_maps = hash:/etc/aliases, hash:/var/lib/mailman/data/aliases alias_database = hash:/etc/aliases, hash:/var/lib/mailman/data/aliases myorigin = /etc/mailname mydestination = mydomain.host.xx, localhost, localhost.localdomain relayhost = mynetworks = 127.0.0.0/8 [::1]/128 mailbox_size_limit = 0 recipient_delimiter = + inet_interfaces = all html_directory = /usr/share/doc/postfix/html virtual_alias_domains = virtual_alias_maps = proxy:mysql:/etc/postfix/mysql-virtual_forwardings.cf, proxy:mysql:/etc/postfix/mysql-virtual_email2email.cf, hash:/var/lib/mailman/data/virtual-mailman virtual_mailbox_domains = proxy:mysql:/etc/postfix/mysql-virtual_domains.cf virtual_mailbox_maps = proxy:mysql:/etc/postfix/mysql-virtual_mailboxes.cf virtual_mailbox_base = /var/vmail virtual_uid_maps = static:5000 virtual_gid_maps = static:5000 smtpd_sasl_auth_enable = yes broken_sasl_auth_clients = yes smtpd_sasl_authenticated_header = yes smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, check_recipient_access mysql:/etc/postfix/mysql-virtual_recipient.cf, reject_unauth_destination smtpd_tls_security_level = may transport_maps = proxy:mysql:/etc/postfix/mysql-virtual_transports.cf relay_domains = mysql:/etc/postfix/mysql-virtual_relaydomains.cf relay_recipient_maps = mysql:/etc/postfix/mysql-virtual_relayrecipientmaps.cf proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks $virtual_mailbox_limit_maps smtpd_sender_restrictions = check_sender_access mysql:/etc/postfix/mysql-virtual_sender.cf smtpd_client_message_rate_limit = 100 maildrop_destination_concurrency_limit = 1 maildrop_destination_recipient_limit = 1 virtual_transport = dovecot header_checks = regexp:/etc/postfix/header_checks mime_header_checks = regexp:/etc/postfix/mime_header_checks nested_header_checks = regexp:/etc/postfix/nested_header_checks body_checks = regexp:/etc/postfix/body_checks owner_request_special = no dovecot_destination_recipient_limit = 1 smtpd_sasl_type = dovecot smtpd_sasl_path = private/auth content_filter = amavis:[127.0.0.1]:10024 receive_override_options = no_address_mappings message_size_limit = 0 mm_cfg Code: from Defaults import * MAILMAN_SITE_LIST = 'mailman' DEFAULT_URL_PATTERN = 'http://%s/cgi-bin/mailman/' PRIVATE_ARCHIVE_URL = '/cgi-bin/mailman/private' IMAGE_LOGOS = '/images/mailman/' DEFAULT_EMAIL_HOST = 'mydomain.xx' DEFAULT_URL_HOST = 'mydomain.xx' add_virtualhost(DEFAULT_URL_HOST, DEFAULT_EMAIL_HOST) DEFAULT_SERVER_LANGUAGE = 'en' USE_ENVELOPE_SENDER = 0 DEFAULT_SEND_REMINDERS = 0 MTA='Postfix' POSTFIX_STYLE_VIRTUAL_DOMAINS = ['mydomain.xx', 'mydomain2.xx']
Are the aliases for the mailing list which xou created in ispconfig listed in /var/lib/mailman/data/aliases ?
Solved The problem is in the relay=dovecot part. What you need to do is configure your mailman transport to use local instead of dovecot. Otherwise, dovecot cannot resolve your virtual domain. Follow these instructions: http://wiki.list.org/display/DOC/Ma...ith+Mailman+generated+transport+or+other+maps Ignore point number (2). You need to tell Postfix to map your virtual alias maps. So keep it in there.
Where exactly did you change the "relay=dovecot" to local? Or do you mean to set virtual_transport = dovecot to virtual_transport = local in main.cf?
Adding the script /etc/mailman/virtual_to_transport Code: #!/bin/sh sed -r -e 's/(^[^#]\S+\s+).+$/\1local/' $1 > /var/lib/mailman/data/transport-mailman /usr/sbin/postmap /var/lib/mailman/data/transport-mailman When you run bin/genaliases mailman will generate the transport-mailman with a list aliases mapping to local. Example, Code: ... # STANZA START: test # CREATED: Sun Feb 3 12:49:43 2013 [email protected] local [email protected] local [email protected] local [email protected] local .. Why this works is beyond my understanding of mailman. If you look at virtual-mailman that mapping should have picked up the mapping and directs the mail to aliases which then delivers to mailman. With the transport-mailman mapping, essentially you are sending it to the local system and letting the local services deal with it. I think.
Ok, yes this makes sense. I will test this on my server and see how it can be integrated into the ispconfig installer so that the mailman setup works out of the box in future.
I followed this thread, my problem was : after trying to post a mail to [email protected] list I recieved an error msg with <[email protected]>: user unknown and after this thread, I finished with an error msg <[email protected]>: user unknown "mailman" In the postfix logs that's : Code: Jun 12 16:50:41 MY_DOMAIN amavis[6916]: (06916-03) Passed CLEAN, [xxx.xxx.xxx.xx] [xxx.xxx.xxx.xx] <testeur@MY_DOMAIN.tld> -> <mailman@MY_DOMAIN.tld>, Message-ID: <51B88AB8.90103@MY_DOMAIN.tld>, mail_id: ZABhkjINR28g, Hits: -1, size: 632, queued_as: 8B3C84172F, 417 ms Jun 12 16:50:41 MY_DOMAIN postfix/smtp[9756]: 18FBF410A3: to=<mailman@MY_DOMAIN.tld>, relay=127.0.0.1[127.0.0.1]:10024, delay=0.69, delays=0.27/0/0/0.42, dsn=2.0.0, status=sent (250 2.0.0 Ok, id=06916-03, from MTA([127.0.0.1]:10025): 250 2.0.0 Ok: queued as 8B3C84172F) Jun 12 16:50:41 MY_DOMAIN postfix/qmgr[29724]: 8B3C84172F: from=<testeur@MY_DOMAIN.tld>, size=1102, nrcpt=1 (queue active) Jun 12 16:50:41 MY_DOMAIN postfix/qmgr[29724]: 18FBF410A3: removed Jun 12 16:50:41 MY_DOMAIN postfix/local[9760]: 8B3C84172F: to=<mailman@MY_DOMAIN.tld>, relay=local, delay=0.38, delays=0.21/0.04/0/0.14, dsn=5.1.1, status=bounced (unknown user: "mailman") Jun 12 16:50:41 MY_DOMAIN postfix/cleanup[9755]: E84544173B: message-id=<20130612145041.E84544173B@MY_DOMAIN.tld> Jun 12 16:50:42 MY_DOMAIN postfix/bounce[9761]: 8B3C84172F: sender non-delivery notification: E84544173B Jun 12 16:50:42 MY_DOMAIN postfix/qmgr[29724]: E84544173B: from=<>, size=2975, nrcpt=1 (queue active) Jun 12 16:50:42 MY_DOMAIN postfix/qmgr[29724]: 8B3C84172F: removed Jun 12 16:50:42 MY_DOMAIN postfix/pipe[9762]: E84544173B: to=<testeur@MY_DOMAIN.tld>, relay=dovecot, delay=0.36, delays=0.12/0/0/0.23, dsn=2.0.0, status=sent (delivered via dovecot service) Jun 12 16:50:42 MY_DOMAIN postfix/qmgr[29724]: E84544173B: removed what's wrong ? the main.cf is Code: alias_database = hash:/etc/aliases alias_maps = hash:/etc/aliases append_dot_mydomain = no biff = no config_directory = /etc/postfix content_filter = amavis:[127.0.0.1]:10024 default_transport = smtp delay_warning_time = 1h inet_interfaces = all inet_protocols = ipv4 mailbox_size_limit = 51200000 mydestination = localhost myhostname = MY_DOMAIN.tld mynetworks = 127.0.0.0/8 MY_DOMAIN_P.0/24 [::ffff:127.0.0.0]/104 [::1]/128 myorigin = /etc/mailname readme_directory = no receive_override_options = no_address_mappings recipient_delimiter = + relay_domains = mysql:/etc/postfix/mysql_relay_domains.cf relay_transport = relay relayhost = smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU) smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_non_fqdn_hostname, reject_non_fqdn_sender, reject_non_fqdn_recipient, reject_unauth_destination, reject_unauth_pipelining, check_policy_service inet:127.0.0.1:10023, reject_invalid_hostname smtpd_sasl_auth_enable = yes smtpd_sasl_security_options = noanonymous smtpd_tls_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem smtpd_tls_key_file = /etc/ssl/private/ssl-cert-snakeoil.key smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache smtpd_use_tls = yes transport_maps = hash:/var/lib/mailman/data/transport-mailman virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf,hash:/var/lib/mailman/data/virtual-mailman virtual_gid_maps = static:3000 virtual_mailbox_base = /home/facteur virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_mailbox_domains.cf virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf virtual_transport = dovecot virtual_uid_maps = static:3000 and the mm_cfg.py Code: MAILMAN_SITE_LIST = 'mailman' DEFAULT_URL_PATTERN = 'http://%s/adm_listes/' PRIVATE_ARCHIVE_URL = '/cgi-bin/mailman/private' IMAGE_LOGOS = '/images/mailman/' DEFAULT_EMAIL_HOST = 'MY_DOMAIN.tld' DEFAULT_URL_HOST = 'MY_DOMAIN.tld' add_virtualhost(DEFAULT_URL_HOST, DEFAULT_EMAIL_HOST) POSTFIX_STYLE_VIRTUAL_DOMAINS = ['MY_DOMAIN.tld'] POSTFIX_MAP_CMD = '/var/lib/mailman/data/virtual_to_transport' MTA='Postfix' GLOBAL_PIPELINE.insert(1, 'SpamAssassin') all the mailman aliases, virtual-mailman and transport-mailman are up-to-date and well-formed. mailman-request and mailman-bounces can send mails with no problem. thanks for the help.
Many thanks for the review. I understand from other posts that this issue should be addressed by now, but I am facing exactly the same problem with a server that i recently set up on Centos 6.5 / dovecot / postfix / ispconf / apache etc using the most recent "perfect server" how-to: normal mails work fine, and the welcome mails from mailman also arrive as they should, but if I sent a mail to the list the message bounces with an "unkown user" May 20 12:10:16 xxxWebServer postfix/local[16485]: 8952C1213F7: to=<[email protected]>, relay=local, delay=0.13, delays=0.06/0.03/0/0.05, dsn=5.1.1, status=bounced (unknown user: "btc-all") here is the configuration: # postconf -n alias_database = hash:/etc/aliases hash:/var/lib/mailman/data/aliases alias_maps = hash:/etc/aliases hash:/var/lib/mailman/data/aliases always_bcc = [email protected] body_checks = regexp:/etc/postfix/body_checks broken_sasl_auth_clients = yes command_directory = /usr/sbin config_directory = /etc/postfix content_filter = amavis:[127.0.0.1]:10024 daemon_directory = /usr/libexec/postfix data_directory = /var/lib/postfix debug_peer_level = 2 header_checks = regexp:/etc/postfix/header_checks html_directory = no inet_interfaces = all inet_protocols = all mail_owner = postfix mailq_path = /usr/bin/mailq.postfix manpage_directory = /usr/share/man mime_header_checks = regexp:/etc/postfix/mime_header_checks mydestination = xxxwebserver.xxxlocal, localhost, localhost.localdomain myhostname = yyy.ch mynetworks = 127.0.0.0/8 [::1]/128 nested_header_checks = regexp:/etc/postfix/nested_header_checks newaliases_path = /usr/bin/newaliases.postfix proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks queue_directory = /var/spool/postfix readme_directory = /usr/share/doc/postfix-2.6.6/README_FILES receive_override_options = no_address_mappings relay_domains = mysql:/etc/postfix/mysql-virtual_relaydomains.cf relay_recipient_maps = mysql:/etc/postfix/mysql-virtual_relayrecipientmaps.cf sample_directory = /usr/share/doc/postfix-2.6.6/samples sendmail_path = /usr/sbin/sendmail.postfix setgid_group = postdrop smtp_tls_security_level = may smtpd_client_message_rate_limit = 100 smtpd_client_restrictions = check_client_access mysql:/etc/postfix/mysql-virtual_client.cf smtpd_recipient_restrictions = check_recipient_access mysql:/etc/postfix/mysql-virtual_recipient.cf, permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination smtpd_sasl_auth_enable = yes smtpd_sasl_authenticated_header = yes smtpd_sasl_path = private/auth smtpd_sasl_type = dovecot smtpd_sender_restrictions = check_sender_access mysql:/etc/postfix/mysql-virtual_sender.cf smtpd_tls_cert_file = /etc/postfix/smtpd.cert smtpd_tls_key_file = /etc/postfix/smtpd.key smtpd_tls_security_level = may smtpd_use_tls = yes transport_maps = hash:/var/lib/mailman/data/transport-mailman, proxy:mysql:/etc/postfix/mysql-virtual_transports.cf unknown_local_recipient_reject_code = 550 virtual_alias_domains = virtual_alias_maps = proxy:mysql:/etc/postfix/mysql-virtual_forwardings.cf, proxy:mysql:/etc/postfix/mysql-virtual_email2email.cf, hash:/etc/mailman/virtual-mailman virtual_gid_maps = static:5000 virtual_mailbox_base = /var/vmail virtual_mailbox_domains = proxy:mysql:/etc/postfix/mysql-virtual_domains.cf virtual_mailbox_maps = proxy:mysql:/etc/postfix/mysql-virtual_mailboxes.cf virtual_transport = dovecot virtual_uid_maps = static:5000 and /etc/mailman/mm_cfg.py # -*- python -*- # Copyright (C) 1998,1999,2000 by the Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation; either version 2 # of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301 USA """This is the module which takes your site-specific settings. From a raw distribution it should be copied to mm_cfg.py. If you already have an mm_cfg.py, be careful to add in only the new settings you want. The complete set of distributed defaults, with annotation, are in ./Defaults. In mm_cfg, override only those you want to change, after the from Defaults import * line (see below). Note that these are just default settings - many can be overridden via the admin and user interfaces on a per-list or per-user basis. Note also that some of the settings are resolved against the active list setting by using the value as a format string against the list-instance-object's dictionary - see the distributed value of DEFAULT_MSG_FOOTER for an example.""" ####################################################### # Here's where we get the distributed defaults. # from Defaults import * ############################################################## # Put YOUR site-specific configuration below, in mm_cfg.py . # # See Defaults.py for explanations of the values. # #------------------------------------------------------------- # The name of the list Mailman uses to send password reminders # and similar. Don't change if you want mailman-owner to be # a valid local part. MAILMAN_SITE_LIST = 'mailman' #------------------------------------------------------------- # If you change these, you have to configure your http server # accordingly (Alias and ScriptAlias directives in most httpds) DEFAULT_URL_PATTERN = 'http://%s/cgi-bin/mailman/' PRIVATE_ARCHIVE_URL = '/cgi-bin/mailman/private' IMAGE_LOGOS = '/images/mailman/' #------------------------------------------------------------- # Default domain for email addresses of newly created MLs DEFAULT_EMAIL_HOST = 'yyy.ch' #------------------------------------------------------------- # Default host for web interface of newly created MLs DEFAULT_URL_HOST = 'yyy.ch' #------------------------------------------------------------- # Required when setting any of its arguments. add_virtualhost(DEFAULT_URL_HOST, DEFAULT_EMAIL_HOST) #------------------------------------------------------------- # The default language for this server. DEFAULT_SERVER_LANGUAGE = 'en' #------------------------------------------------------------- # Iirc this was used in pre 2.1, leave it for now USE_ENVELOPE_SENDER = 0 # Still used? #------------------------------------------------------------- # Unset send_reminders on newly created lists DEFAULT_SEND_REMINDERS = 0 #------------------------------------------------------------- # Uncomment this if you configured your MTA such that it # automatically recognizes newly created lists. # (see /usr/share/doc/mailman/README.Exim4.Debian or # /usr/share/mailman/postfix-to-mailman.py) # MTA=None # Misnomer, suppresses alias output on newlist #------------------------------------------------------------- # Uncomment if you use Postfix virtual domains (but not # postfix-to-mailman.py), but be sure to see # /usr/share/doc/mailman/README.Debian first. MTA='Postfix' POSTFIX_STYLE_VIRTUAL_DOMAINS = ['yyy.ch'] #------------------------------------------------------------- # Uncomment if you want to filter mail with SpamAssassin. For # more information please visit this website: # http://www.jamesh.id.au/articles/mailman-spamassassin/ GLOBAL_PIPELINE.insert(1, 'SpamAssassin') #POSTFIX_MAP_CMD = '/var/lib/mailman/data/virtual_to_transport.sh' POSTFIX_MAP_CMD = '/etc/mailman/virtual_to_transport.sh' # Note - if you're looking for something that is imported from mm_cfg, but you # didn't find it above, it's probably in /usr/lib/mailman/Mailman/Defaults.py. Can somebody point me in the right direction, pls!!