Hello,
I'm running a CentOS 5.4 machine and atempting to get postfix and
mailman going on it. This was working prior to a complete system
upgrade about 9 months ago, now it isn't, I'm getting an error 554
user unknown message when the user atempts to send back the
confirmation email to join the mailing list in this case a test list
called test4. I'm running postfix 2.3.3 and mailman 2.1.9 installed
from rpms. I've got a virtual mailbox domain called for this purpose
example.com which is working fine. I decided to have a separate domain
called lists.example.com for mailman, when the error 554 comes in
instead of being [email protected] which would work the
address is [email protected] which is nonexistent. How can i
get this to work, I think this is something simple, but two days and
i'm not seeing it.
My config is below.
Thanks.
Dave.
main.cf:
address_verify_map = btree:/var/spool/postfix/verified_senders
alias_database = hash:/etc/postfix/aliases
alias_maps = hash:/etc/postfix/aliases, hash:/etc/mailman/aliases
biff = no
body_checks = regexp:/etc/postfix/body_checks
bounce_template_file = /etc/postfix/bounce.cf
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
delay_warning_time = 4h
disable_vrfy_command = yes
header_checks = regexp:/etc/postfix/header_checks
home_mailbox = Maildir/
html_directory = no
inet_interfaces = 127.0.0.1, xxx.xxx.xxx.xxx
invalid_hostname_reject_code = 554
mail_owner = postfix
mailbox_size_limit = 104857600
mailq_path = /usr/bin/mailq.postfix
manpage_directory = /usr/share/man
message_size_limit = 20971520
mime_header_checks = regexp:/etc/postfix/mime_header_checks
multi_recipient_bounce_reject_code = 554
mydestination = localhost
mydomain = example.com
myhostname = mail.example.com
mynetworks = 127.0.0.0/8, xxx.xxx.xxx.xxx/32
myorigin = $mydomain
newaliases_path = /usr/bin/newaliases.postfix
non_fqdn_reject_code = 554
owner_request_special = no
queue_directory = /var/spool/postfix
readme_directory = /usr/share/doc/postfix-2.3.3/README_FILES
receive_override_options = no_address_mappings
recipient_delimiter = +
sample_directory = /usr/share/doc/postfix-2.3.3/samples
sendmail_path = /usr/sbin/sendmail.postfix
setgid_group = postdrop
show_user_unknown_table_name = yes
smtp_helo_timeout = 60s
smtp_tls_CAfile = /etc/postfix/ssl/ca-bundle.crt
smtp_tls_cert_file = /etc/postfix/ssl/smtp.crt
smtp_tls_key_file = /etc/postfix/ssl/smtp.key
smtp_tls_note_starttls_offer = yes
smtp_tls_session_cache_database = btree:/var/spool/postfix/smtp_tls_cache
smtp_use_tls = yes
smtpd_banner = $myhostname ESMTP
smtpd_data_restrictions = reject_unauth_pipelining
smtpd_helo_required = yes
smtpd_recipient_restrictions = permit_sasl_authenticated
permit_mynetworks reject_unauth_destination reject_non_fqdn_hostname
reject_invalid_hostname reject_non_fqdn_sender
reject_non_fqdn_recipient reject_unknown_sender_domain
reject_unknown_recipient_domain reject_unverified_recipient
reject_multi_recipient_bounce check_client_access
cidr:/etc/postfix/sinokorea.cidr check_helo_access
pcre:/etc/postfix/helo_checks.pcre check_helo_access
hash:/etc/postfix/helo_checks check_recipient_access
pcre:/etc/postfix/recipient_checks.pcre check_sender_mx_access
cidr:/etc/postfix/bogus_mx check_sender_access
hash:/etc/postfix/common_spam_senderdomain check_sender_access
regexp:/etc/postfix/common_spam_senderdomain_keywords
check_sender_access hash:/etc/postfix/freemail_access,
check_sender_access hash:/etc/postfix/greylist check_client_access
hash:/etc/postfix/client_checks, reject_rbl_client
zen.spamhaus.org, reject_rbl_client black.uribl.com, reject_rbl_client
combined.rbl.msrbl.net, reject_rhsbl_sender dsn.rfc-ignorant.org
smtpd_restriction_classes = from_freemail_host, greylist,
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain =
smtpd_sasl_path = private/auth
smtpd_sasl_security_options = noanonymous
smtpd_sasl_type = dovecot
smtpd_tls_CAfile = /etc/postfix/ssl/ca-bundle.crt
smtpd_tls_auth_only = yes
smtpd_tls_cert_file = /etc/postfix/ssl/smtp.crt
smtpd_tls_key_file = /etc/postfix/ssl/smtp.key
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_security_level = may
smtpd_tls_session_cache_database = btree:/var/spool/postfix/smtpd_tls_cache
smtpd_tls_session_cache_timeout = 3600s
strict_rfc821_envelopes = yes
tls_random_source = dev:/dev/urandom
unknown_address_reject_code = 554
unknown_client_reject_code = 554
unknown_hostname_reject_code = 554
unknown_local_recipient_reject_code = 550
unknown_relay_recipient_reject_code = 554
unknown_virtual_alias_reject_code = 554
unknown_virtual_mailbox_reject_code = 554
unverified_recipient_reject_code = 554
unverified_sender_reject_code = 554
virtual_alias_domains = lists.$mydomain
virtual_alias_maps = hash:/etc/mailman/virtual-mailman
virtual_gid_maps = static:5000
virtual_mailbox_base = /home/vmail
virtual_mailbox_domains = /etc/postfix/vhosts
virtual_mailbox_maps = hash:/etc/postfix/vmaps
virtual_minimum_uid = 1000
virtual_uid_maps = static:5000
master.cf:
smtp inet n - y - - smtpd
#submission inet n - y - - smtpd
# -o smtpd_enforce_tls=yes
# -o smtpd_sasl_auth_enable=yes
# -o smtpd_client_restrictions=permit_sasl_authenticated,reject
smtps inet n - y - - smtpd
-o smtpd_tls_wrappermode=yes
# -o smtpd_sasl_auth_enable=yes
# -o smtpd_client_restrictions=permit_sasl_authenticated,reject
#628 inet n - y - - qmqpd
# standard pickup
#pickup fifo n - y 60 1 pickup
#This pickup will make sure that local messages (such as ones
originating from the server
#itself by Cron, and are sent to root) are not subjected to content
filtering, or any header checks.
pickup fifo n - y 60 1 pickup
-o content_filter=
-o receive_override_options=no_header_body_checks
cleanup unix n - y - 0 cleanup
qmgr fifo n - y 300 1 qmgr
#qmgr fifo n - y 300 1 oqmgr
tlsmgr unix - - y 1000? 1 tlsmgr
rewrite unix - - y - - trivial-rewrite
bounce unix - - y - 0 bounce
defer unix - - y - 0 bounce
trace unix - - y - 0 bounce
verify unix - - y - 1 verify
flush unix n - y 1000? 0 flush
proxymap unix - - y - - proxymap
smtp unix - - y - - smtp
# When relaying mail as backup MX, disable fallback_relay to avoid MX loops
relay unix - - y - - smtp
-o fallback_relay=
# -o smtp_helo_timeout=5 -o smtp_connect_timeout=5
showq unix n - y - - showq
error unix - - y - - error
discard unix - - y - - discard
local unix - n n - - local
virtual unix - n n - - virtual
lmtp unix - - y - - lmtp
anvil unix - - y - 1 anvil
scache unix - - y - 1 scache
# spf support
#spfpolicy unix - n n - - spawn
user=nobody argv=/usr/bin/perl /etc/postfix/postfix-policyd-spf-perl
# amavisd filter
amavis unix - - y - 2 smtp
-o smtp_data_done_timeout=1200
-o smtp_send_xforward_command=yes
-o disable_mime_output_conversion=yes
-o smtp_generic_maps=
-o disable_dns_lookups=yes
127.0.0.1:10025 inet n - y - - smtpd
-o content_filter=
-o local_recipient_maps=
-o relay_recipient_maps=
-o smtpd_restriction_classes=
-o smtpd_client_restrictions=
-o smtpd_helo_restrictions=
-o smtpd_sender_restrictions=
-o smtpd_recipient_restrictions=permit_mynetworks,reject
-o mynetworks=127.0.0.0/8
-o smtpd_authorized_xforward_hosts=127.0.0.0/8
-o strict_rfc821_envelopes=yes
-o
receive_override_options=no_unknown_recipient_checks,no_header_body_checks,no_milters
-o smtpd_bind_address=127.0.0.1
#Mailman mailing list manager
#mailman unix - n n - - pipe
#flags=FR user=mailman:mailman
#argv=/usr/lib/mailman/postfix-to-mailman.py ${nexthop} ${user}
/etc/mailman/aliases:
# This file is generated by Mailman, and is kept in sync with the
# binary hash file aliases.db. YOU SHOULD NOT MANUALLY EDIT THIS FILE
# unless you know what you're doing, and can keep the two files properly
# in sync. If you screw it up, you're on your own.
# The ultimate loop stopper address
mailman-loop: /var/lib/mailman/data/owner-bounces.mbox
# STANZA START: mailman
# CREATED: Sun Mar 14 19:40:30 2010
mailman: "|/usr/lib/mailman/mail/mailman post mailman"
mailman-admin: "|/usr/lib/mailman/mail/mailman admin mailman"
mailman-bounces: "|/usr/lib/mailman/mail/mailman bounces mailman"
mailman-confirm: "|/usr/lib/mailman/mail/mailman confirm mailman"
mailman-join: "|/usr/lib/mailman/mail/mailman join mailman"
mailman-leave: "|/usr/lib/mailman/mail/mailman leave mailman"
mailman-owner: "|/usr/lib/mailman/mail/mailman owner mailman"
mailman-request: "|/usr/lib/mailman/mail/mailman request mailman"
mailman-subscribe: "|/usr/lib/mailman/mail/mailman subscribe mailman"
mailman-unsubscribe: "|/usr/lib/mailman/mail/mailman unsubscribe mailman"
# STANZA END: mailman
# STANZA START: test4
# CREATED: Sun Mar 14 20:45:53 2010
test4: "|/usr/lib/mailman/mail/mailman post test4"
test4-admin: "|/usr/lib/mailman/mail/mailman admin test4"
test4-bounces: "|/usr/lib/mailman/mail/mailman bounces test4"
test4-confirm: "|/usr/lib/mailman/mail/mailman confirm test4"
test4-join: "|/usr/lib/mailman/mail/mailman join test4"
test4-leave: "|/usr/lib/mailman/mail/mailman leave test4"
test4-owner: "|/usr/lib/mailman/mail/mailman owner test4"
test4-request: "|/usr/lib/mailman/mail/mailman request test4"
test4-subscribe: "|/usr/lib/mailman/mail/mailman subscribe test4"
test4-unsubscribe: "|/usr/lib/mailman/mail/mailman unsubscribe test4"
# STANZA END: test4
/etc/mailman/virtual-mailman:
# This file is generated by Mailman, and is kept in sync with the binary hash
# file virtual-mailman.db. YOU SHOULD NOT MANUALLY EDIT THIS FILE unless you
# know what you're doing, and can keep the two files properly in sync. If you
# screw it up, you're on your own.
#
# Note that you should already have this virtual domain set up properly in
# your Postfix installation. See README.POSTFIX for details.
# LOOP ADDRESSES START
[email protected] mailman-loop
# LOOP ADDRESSES END
# STANZA START: test4
# CREATED: Sun Mar 14 20:45:53 2010
[email protected] test4
[email protected] test4-admin
[email protected] test4-bounces
[email protected] test4-confirm
[email protected] test4-join
[email protected] test4-leave
[email protected] test4-owner
[email protected] test4-request
[email protected] test4-subscribe
[email protected] test4-unsubscribe
# STANZA END: test4
Portions of mm_cfg.py:
DEFAULT_URL_HOST = 'lists.example.com'
DEFAULT_EMAIL_HOST = 'lists.example.com'
# Because we've overriden the virtual hosts above add_virtualhost
# MUST be called after they have been defined.
add_virtualhost(DEFAULT_URL_HOST, DEFAULT_EMAIL_HOST)
MTA = 'Postfix'
POSTFIX_STYLE_VIRTUAL_DOMAINS = 'lists.example.com'