0

We have our main server at mail.mainserver.com with the catchall address [email protected]

We also have two other domains: domain1.com and domain2.com which are hosted at gmail. Gmail is re-routing catchall emails to [email protected]

In /etc/postfix/main.cf

virtual_alias_domains = domain1.com, domain2.com
virtual_alias_maps = hash:/etc/postfix/virtual

And in /etc/postfix/virtual

@mail.mainserver.com [email protected]
@domain1.com [email protected]
@domian2.com [email protected]

These settings are working when it comes to receiving email to either of the above domains, but the issue we are having is in sending an email from a virtual alias ie [email protected] to an existing mailbox at gmail ie [email protected]

The email is not sent, instead it is placed into the inbox of [email protected]

Is there any way to create an ignore list, so that postfix ignores checks on the virtual alias table for specific email addresses and sends them as it would to any other external email address?

Thanks in advance.

As requested, here's our complete config:

# 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 (Debian/GNU)
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

readme_directory = no

# TLS parameters
smtpd_tls_cert_file = /etc/ssl/certs/iRedMail_CA.pem
smtpd_tls_key_file = /etc/ssl/private/iRedMail.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

# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
# information on enabling SSL in the smtp client.

myhostname = mail.mainserver.com
alias_maps = hash:/etc/postfix/aliases
alias_database = hash:/etc/postfix/aliases
myorigin = mail.mainserver.com
mydestination = $myhostname, localhost, localhost.localdomain, localhost.$myhostname
relayhost = 
mynetworks = 127.0.0.0/8
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
inet_protocols = ipv4
virtual_alias_domains = domain1.com,domain2.com
allow_percent_hack = no
swap_bangpath = no
mydomain = mainserver.com
mynetworks_style = host
smtpd_data_restrictions = reject_unauth_pipelining
smtpd_reject_unlisted_recipient = yes
smtpd_reject_unlisted_sender = yes
smtp_tls_security_level = may
smtp_tls_CAfile = $smtpd_tls_CAfile
# smtpd_sender_restrictions = permit_mynetworks, reject_sender_login_mismatch, permit_sasl_authenticated
smtpd_sender_restrictions = permit_mynetworks, permit_sasl_authenticated
delay_warning_time = 0h
maximal_queue_lifetime = 4h
bounce_queue_lifetime = 4h
proxy_read_maps = $canonical_maps $lmtp_generic_maps $local_recipient_maps $mydestination $mynetworks $recipient_bcc_maps $recipient_canonical_maps $relay_domains $relay_recipient_maps $relocated_maps $sender_bcc_maps $sender_canonical_maps $smtp_generic_maps $smtpd_sender_login_maps $transport_maps $virtual_alias_domains $virtual_alias_maps $virtual_mailbox_domains $virtual_mailbox_maps $smtpd_sender_restrictions
smtp_data_init_timeout = 240s
smtp_data_xfer_timeout = 600s
smtpd_helo_required = yes
smtpd_helo_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_non_fqdn_helo_hostname, reject_invalid_helo_hostname, check_helo_access pcre:/etc/postfix/helo_access.pcre
queue_run_delay = 300s
minimal_backoff_time = 300s
maximal_backoff_time = 4000s
enable_original_recipient = no
disable_vrfy_command = yes
home_mailbox = Maildir/
allow_min_user = no
message_size_limit = 15728640
virtual_minimum_uid = 2000
virtual_uid_maps = static:2000
virtual_gid_maps = static:2000
virtual_mailbox_base = /var/vmail
transport_maps = proxy:mysql:/etc/postfix/mysql/transport_maps_user.cf, proxy:mysql:/etc/postfix/mysql/transport_maps_domain.cf
virtual_mailbox_domains = proxy:mysql:/etc/postfix/mysql/virtual_mailbox_domains.cf
virtual_mailbox_maps = proxy:mysql:/etc/postfix/mysql/virtual_mailbox_maps.cf
#virtual_alias_maps = proxy:mysql:/etc/postfix/mysql/virtual_alias_maps.cf, proxy:mysql:/etc/postfix/mysql/domain_alias_maps.cf, proxy:mysql:/etc/postfix/mysql/catchall_maps.cf, proxy:mysql:/etc/postfix/mysql/domain_alias_catchall_maps.cf
virtual_alias_maps = hash:/etc/postfix/virtual
sender_bcc_maps = proxy:mysql:/etc/postfix/mysql/sender_bcc_maps_user.cf, proxy:mysql:/etc/postfix/mysql/sender_bcc_maps_domain.cf
recipient_bcc_maps = proxy:mysql:/etc/postfix/mysql/recipient_bcc_maps_user.cf, proxy:mysql:/etc/postfix/mysql/recipient_bcc_maps_domain.cf
relay_domains = $mydestination, proxy:mysql:/etc/postfix/mysql/relay_domains.cf
smtpd_sender_login_maps = proxy:mysql:/etc/postfix/mysql/sender_login_maps.cf
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = 
broken_sasl_auth_clients = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_authenticated_header = no
smtpd_recipient_restrictions = reject_unknown_sender_domain, reject_unknown_recipient_domain, reject_non_fqdn_sender, reject_non_fqdn_recipient, reject_unlisted_recipient, check_policy_service inet:127.0.0.1:7777, check_policy_service inet:127.0.0.1:10031, permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination, check_recipient_access hash:/etc/postfix/whitelist_recipients
smtpd_end_of_data_restrictions = check_policy_service inet:127.0.0.1:10031
smtpd_tls_security_level = may
smtpd_tls_loglevel = 0
smtpd_tls_CAfile = /etc/ssl/certs/iRedMail_CA.pem
tls_random_source = dev:/dev/urandom
mailbox_command = /usr/lib/dovecot/deliver
virtual_transport = dovecot
dovecot_destination_recipient_limit = 1
smtpd_sasl_type = dovecot
smtpd_sasl_path = ./dovecot-auth
content_filter = smtp-amavis:[127.0.0.1]:10024
smtp-amavis_destination_recipient_limit = 1
luser_relay = [email protected]
local_recipient_maps = 
3
  • What makes you say that @eichertc ? Sep 25, 2014 at 18:21
  • this is impossible. what are the MX entries of domain1.com and domain2.com, they can not be the same time pointing to google and to your server.
    – Max Muster
    Sep 25, 2014 at 18:24
  • Did you even read the above post? Sep 25, 2014 at 18:25

1 Answer 1

2

It's normal.

If domain1.com and domain2.com are hosted at google, you can't write them in your server virtual_alias_domains.

If you put them there in the virtual_alias_domains you tell your postfix he is responsible for this domains and then he see that he has to send any email that has destination domain1.com or domain2.com to [email protected]

and thats what he is doing.


please post the output of postconf -nf , postconf -Mf and eventually dovecot -n.

Is there no way to add some kind of whitelist,

whitelist is a wrong term. (it is related to spam filtering.)

but why don't you simple do what I said, comment out

# virtual_alias_domains = domain1.com,domain2.com

or remove the line completely same like

# @domain1.com [email protected]
# @domian2.com [email protected]

comment them out or remove them.

If domain1.com,domain2.com are hosted at google and you expect the server mail.mainserver.com to send the emails for these two domains to google, then this will not happen if the domains are real, virtual or alias domains on the server mail.mainserver.com.

The server will not sent them away because he feels responsible for this two domains. In addition your /etc/postfix/virtual say that any mail for domain1.com should be forwarded to [email protected] same like any mail for domain domian2.com should be forwarded to [email protected]. This is why any emails for this two domains land in the INBOX of [email protected].

or force postfix to send all emails externally?

if you want to forward everything externally you can:

a) put a outside email in your /etc/postfix/virtual

@mail.mainserver.com [email protected]

b) use a .forward file

c) install procmail and make a /etc/procmailrc with the following content

#
# Forward everything to [email protected]
#
:0:
! [email protected]

d) if you feel more yippee, install use dovecot/sieve and write a rule to redirect all emails to the foreign server. Sieve is a bit hairy to configure, if you have problems with the first 3 methods you prolly will not succeed this one.

#
# Forward everything coming from [email protected]
# to [email protected]
#
if address :is ["From"] "[email protected]"  {
  redirect "[email protected]"; 
  stop;
}

there may be also other methods but these are in my opinion the simplest.

1
  • Is there no way to add some kind of whitelist, or force postfix to send all emails externally? Sep 25, 2014 at 18:53

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .