web-dev-qa-db-ja.com

mysqlテーブルの代わりにvirtual.dbファイルを使用するPostfix

virtual_alias_maps = mysql:/etc/postfix/mysql-virtual-alias-maps.cfを指定しましたが、それでも次のようなエラーが発生します

警告:hash:/ etc/postfix/virtualは使用できません。データベース/etc/postfix/virtual.dbを開きます:そのようなファイルまたはディレクトリはありません

Virtualファイルとvirtual.dbファイルを作成すると、すべて正常に機能しますが、ファイルの場合ではなく、仮想ユーザーアカウントをDBに保存する必要があります。

Postfixがdbテーブルの代わりにvirtual.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

実際、master.cfには/ etc/postfix/virtualがあります。

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
1
asmisha

問題は次の行でした-o smtpd_sender_login_maps=hash:/etc/postfix/virtualmaster.cf内。この正確な構成が別のサーバーで数か月間正常に実行されていたため、そこを確認するのを忘れました。

1
asmisha

etc/postfix/main.cfの行を変更することで、これを解決しました。

virtual_alias_maps = hash:/etc/postfix/virtual

virtual_alias_maps = hash:/etc/aliases

(または、代わりに、コンテンツを含むetc/postfix/virtualファイルを作成するだけです):

your_linux_username:  [email protected]

次に、postfix:Sudo systemctl restart postfixを再起動すると、メールが送信されました。

0
T.Todua