Postfix usando el archivo virtual.db en lugar de la tabla mysql

Postfix usando el archivo virtual.db en lugar de la tabla mysql

Lo he especificado virtual_alias_maps = mysql:/etc/postfix/mysql-virtual-alias-maps.cf, pero todavía recibo errores como

Advertencia: hash:/etc/postfix/virtual no está disponible. abrir base de datos /etc/postfix/virtual.db: No existe tal archivo o directorio

Si creo los archivos virtual y virtual.db, todo funciona bien, pero quiero que mi cuenta de usuario virtual se almacene en la base de datos, no en un archivo.

¿Por qué postfix utiliza el archivo virtual.db en lugar de la tabla db?

postconf -n:

alias_maps = hash:/etc/aliases
broken_sasl_auth_clients = yes
config_directory = /etc/postfix
dovecot_destination_recipient_limit = 1
inet_interfaces = all
inet_protocols = ipv4
milter_default_action = accept
milter_protocol = 2
mydestination = localhost
non_smtpd_milters = unix:/var/run/opendkim/opendkim.sock
smtp_tls_note_starttls_offer = yes
smtpd_milters = unix:/var/run/opendkim/opendkim.sock
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = example.tst
smtpd_sasl_path = private/auth
smtpd_sasl_security_options = noanonymous
smtpd_sasl_type = dovecot
smtpd_tls_auth_only = no
smtpd_tls_cert_file = /etc/dovecot/dovecot.pem
smtpd_tls_key_file = /etc/dovecot/private/dovecot.pem
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_security_level = may
smtpd_tls_session_cache_timeout = 3600s
smtpd_use_tls = yes
virtual_alias_maps = mysql:/etc/postfix/mysql-virtual-alias-maps.cf
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

En realidad tengo /etc/postfix/virtual en master.cf:

submission inet n - - - - smtpd
  -o smtpd_tls_security_level=encrypt
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_sasl_type=dovecot
  -o smtpd_sasl_path=private/auth
  -o smtpd_sasl_security_options=noanonymous
  -o smtpd_sasl_local_domain=$myhostname
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
  -o smtpd_sender_login_maps=hash:/etc/postfix/virtual
  -o smtpd_sender_restrictions=reject_sender_login_mismatch
  -o smtpd_recipient_restrictions=reject_non_fqdn_recipient,reject_unknown_recipient_domain,permit_sasl_authenticated,reject

Respuesta1

El problema era la línea -o smtpd_sender_login_maps=hash:/etc/postfix/virtualen master.cf. Olvidé mirar allí, porque esta configuración exacta funcionó bien durante meses en otro de mis servidores.

Respuesta2

Lo resolví modificando la línea en etc/postfix/main.cf :

virtual_alias_maps = hash:/etc/postfix/virtual

a

virtual_alias_maps = hash:/etc/aliases

(o como alternativa, simplemente cree el etc/postfix/virtualarchivo con contenido):

your_linux_username:  [email protected]

luego reinicie postfix: sudo systemctl restart postfixy luego se enviaron los correos.

información relacionada