Relase envio de e-mails para a internet se a entrega local falhar

1

Como posso liberar e-mails enviados para a Internet se a entrega local falhar no postfix?

Meu servidor tem domínios virtuais configurados com mydomain.tld. Quando eu envio um email para [email protected] ele tenta entregar localmente e falha se o usuário não for encontrado. Em vez disso, preciso liberar esses e-mails para a internet.

O motivo do requisito acima é que eu tenho vários servidores configurados com mydomain.tld. Usuários diferentes estão em servidores diferentes, mas com o mesmo domínio - mydomain.tld (tenho um mecanismo de trabalho para emails de entrada)

Este é o meu arquivo main.cf.

# postfix config file

# uncomment for debugging if needed
# soft_bounce=yes

# postfix main
mail_owner = postfix
setgid_group = postdrop
delay_warning_time = 4

# postfix paths
html_directory = no
command_directory = /usr/sbin
daemon_directory = /usr/lib/postfix
queue_directory = /var/spool/postfix
sendmail_path = /usr/sbin/sendmail.postfix
newaliases_path = /usr/bin/newaliases.postfix
mailq_path = /usr/bin/mailq.postfix
manpage_directory = /usr/share/man
sample_directory = /usr/share/doc/postfix-2.2.2/samples
readme_directory = /usr/share/doc/postfix-2.2.2/README_FILES

# network settings
inet_interfaces = all
mydomain   = mail1.mydomain.com
myhostname = mail1.mydomain.com
mynetworks = all
mydestination = localhost.$mydomain, localhost
#relay_domains = proxy:mysql:/etc/configs/postfix/mysql-relay_domains_maps.cf

# mail delivery
recipient_delimiter = +

# mappings
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
#transport_maps = hash:/etc/postfix/transport
#local_recipient_maps =
#local_transport = error:local mail delivery is disabled

# virtual setup
virtual_alias_maps = proxy:mysql:/etc/configs/postfix/mysql-virtual_alias_maps.cf,
                     regexp:/etc/configs/postfix/virtual_regexp
virtual_mailbox_base = /var/vmail
virtual_mailbox_domains = proxy:mysql:/etc/configs/postfix/mysql-virtual_domains_maps.cf
virtual_mailbox_maps = proxy:mysql:/etc/configs/postfix/mysql-virtual_mailbox_maps.cf
virtual_mailbox_limit_maps = proxy:mysql:/etc/configs/postfix/mysql-virtual_mailbox_limit_maps.cf
virtual_minimum_uid = 150
virtual_uid_maps = static:150
virtual_gid_maps = static:8
virtual_transport = dovecot
dovecot_destination_recipient_limit = 1

# debugging
debug_peer_level = 2
debugger_command =
         PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
         xxgdb $daemon_directory/$process_name $process_id & sleep 5

# authentication
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $myhostname
broken_sasl_auth_clients = yes
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth

# tls config
smtp_use_tls = no
smtpd_use_tls = no
#smtp_tls_note_starttls_offer = yes
#smtpd_tls_loglevel = 1
#smtpd_tls_received_header = yes
#smtpd_tls_session_cache_timeout = 3600s
#tls_random_source = dev:/dev/urandom
#smtp_tls_session_cache_database = btree:$data_directory/smtp_tls_session_cache
# Change mail.example.com.* to your host name
#smtpd_tls_key_file = /etc/pki/tls/private/mail.example.com.key
#smtpd_tls_cert_file = /etc/pki/tls/certs/mail.example.com.crt
# smtpd_tls_CAfile = /etc/pki/tls/root.crt

# rules restrictions
smtpd_client_restrictions =
smtpd_helo_restrictions =
smtpd_sender_restrictions =
smtpd_recipient_restrictions = permit_sasl_authenticated,
        permit_mynetworks,
        reject_unauth_destination,
        reject_non_fqdn_sender,
        reject_non_fqdn_recipient,
        reject_unknown_recipient_domain
# uncomment for realtime black list checks
#       ,reject_rbl_client zen.spamhaus.org
#       ,reject_rbl_client bl.spamcop.net
#       ,reject_rbl_client dnsbl.sorbs.net

smtpd_helo_required = yes
unknown_local_recipient_reject_code = 550
disable_vrfy_command = yes
smtpd_data_restrictions = reject_unauth_pipelining

Obrigado por qualquer resposta antecipada.

    
por M_R_K 28.10.2014 / 18:03

1 resposta

4

Sugiro que você remova todo o parâmetro virtual_mailbox_ * e use apenas transport_maps e relay_domains.

Configure um transporte "dovecot:" em master.cf que entrega seus e-mails através do dovecot LDA ou do pvc LMTP. Por exemplo:

dovecot   unix  -       n       n       -       -       pipe
    flags=DRhu user=vmail:vmail argv=/usr/local/libexec/dovecot/dovecot-lda -f ${sender} -d ${recipient}

A próxima ação é anexar mydomain.tld aos seus relay_domains.

Depois disso, configure um arquivo de configuração SQL para o transport_maps para fornecer um resultado como "dovecot:" para cada usuário existente. Caso contrário, não devolva nada aqui. Também crie uma tabela de hash para transport_maps com a seguinte entrada:

mydomain.tld    [other.mailserver.mydomain.tld]

A última linha seria seu host de referência padrão para mydomain.tld. Qualquer endereço de e-mail correspondente sobrescreve esse padrão e, portanto, é entregue ao servidor dovecot local.

    
por 29.10.2014 / 18:55