Tenho meu próprio servidor de e-mail e gostaria de poder usar a marcação dinâmica de endereços de e-mail. Adicionei a recipient_delimiter = +-
diretiva à minha configuração e reiniciei o postfix, mas agora, se eu enviar um e-mail [email protected]
, por exemplo, o e-mail será devolvido com o erro "Usuário desconhecido". Se eu enviar um e-mail [email protected]
, o e-mail será entregue à webmaster
conta conforme o esperado.
Aqui está a minha configuração do postfix:
## These are all default Postfix settings that we won't change
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
append_dot_mydomain = no
biff = no
broken_sasl_auth_clients = yes
inet_interfaces = all
mailbox_command = /usr/lib/dovecot/deliver -c
/etc/dovecot/conf.d/01-mail-stack-delivery.conf -m "${EXTENSION}"
mailbox_size_limit = 0
myorigin = /etc/mailname
readme_directory = no
recipient_delimiter = +-
relayhost =
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_sasl_auth_enable = yes
smtpd_sasl_authenticated_header = yes
smtpd_sasl_path = private/dovecot-auth
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $myhostname
smtpd_sasl_type = dovecot
smtpd_tls_auth_only = yes
smtpd_tls_received_header = yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
tls_random_source = dev:/dev/urandom
## Settings below this line are things we're modifying or adding
## Your mail server identity options
myhostname = mail.starbeamrainbowlabs.com
#mydestination = localhost, starbeamrainbowlabs.com,
# localhost.starbeamrainbowalabs.com
# 89.107.190.141 = cross-code central
mynetworks = 127.0.0.0/8 192.168.0.0/24 [::ffff:127.0.0.0]/104 [::1]/128 89.107.190.141
## Customized smtpd paramters
smtpd_banner = $myhostname ESMTP
smtpd_helo_required = yes
smtpd_helo_restrictions = permit_mynetworks,
check_helo_access hash:/etc/postfix/helo_access
#reject_non_fqdn_helo_hostname,
reject_invalid_helo_hostname,
#reject_unknown_helo_hostname,
#warn_if_reject, # warn us instead of actually blocking them
permit
smtpd_sender_restrictions = permit_mynetworks,
permit_sasl_authenticated,
#reject_unknown_sender_domain,
reject_sender_login_mismatch
smtpd_recipient_restrictions = permit_mynetworks,
permit_sasl_authenticated,
reject_unknown_client_hostname,
reject_unknown_sender_domain,
reject_unknown_recipient_domain,
reject_unauth_pipelining,
reject_unauth_destination,
reject_invalid_hostname,
reject_non_fqdn_sender
smtpd_sender_login_maps = $virtual_mailbox_maps
## Dealing with rejection: use permanent 550 errors to stop retries
unknown_address_reject_code = 550
unknown_hostname_reject_code = 550
unknown_client_reject_code = 550
## customized TLS parameters
smtpd_tls_ask_ccert = yes
smtpd_tls_cert_file = /etc/ssl/private/chain/www-mail.starbeamrainbowlabs.com.pem
smtpd_tls_key_file = /etc/ssl/private/key/decrypted/www-mail.starbeamrainbowlabs.com.key
smtpd_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
smtpd_tls_ciphers = high
smtpd_tls_loglevel = 1
smtpd_tls_security_level = may
smtpd_tls_session_cache_timeout = 3600s
## Customized Dovecot and virtual user-specific settings
canonical_maps = hash:/etc/postfix/canonical
home_mailbox = Maildir/
message_size_limit = 104857600
virtual_alias_maps = hash:/etc/postfix/virtual
virtual_mailbox_domains = hash:/etc/postfix/virtual-mailbox-domains
virtual_mailbox_maps = hash:/etc/postfix/virtual-mailbox-users
virtual_transport = dovecot
## This setting will generate an error if you restart Postfix before
## adding the appropriate service definition in master.cf, so make
## sure to get that taken care of!
dovecot_destination_recipient_limit = 1
## Customized milter settings
milter_default_action = accept
milter_connect_macros = j {daemon_name} v {if_name} _
non_smtpd_milters = $smtpd_milters
smtpd_milters = inet:127.0.0.1:11444 unix:/opendkim/opendkim.sock
## Other customized mail server settings
default_destination_concurrency_limit = 5
disable_vrfy_command = yes
relay_destination_concurrency_limit = 1
smtp_tls_note_starttls_offer = yes
smtp_tls_security_level = may
De /etc/postfix/master.cf
, eu tenho este Dovecot definidor:
dovecot unix - n n - - pipe
flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver
-f ${sender} -d ${recipient}
Também tenho definições para ifmail
, bsmtp
, scalemail-backend
, mailman
, uucp
, scache
, maildrop
e um monte de outros, mas não tenho certeza do que todos fazem.
Alguém sabe o que está acontecendo aqui e como posso consertar, por favor?
Estou usando caixas de correio virtuais.
No
/etc/postfix/master.cf
arquivo de configuração, certifique-se de que a definição dedovecot
serviço, referenciada pelovirtual_transport
parâmetro de configuração, esteja definida para suprimir a parte da extensão do endereço do destinatário durante a chamada para/usr/lib/dovecot/deliver
.Por exemplo, isso pode não funcionar porque
${recipient}
será expandido pelo serviço pipe(8)[email protected]
do Postfix :A
${recipient}
macro deve ser substituída por${user}@${domain}
neste cenário, para que o entregador Dovecot receba o endereço correto[email protected]
em sua linha de comando:Referência: https://wiki1.dovecot.org/LDA/Postfix
Múltiplos caracteres no
recipient_delimiter
parâmetro parecem ser suportados apenas no Postfix 2.11 ou mais recente. Verifique se você está executando uma versão recente do Postfix ou, alternativamente, use apenas um caractere delimitador.Da página de manual do postconf (5) :