
을 지정했지만 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
-o smtpd_sender_login_maps=hash:/etc/postfix/virtual
문제는 master.cf의 라인이었습니다 . 이 구성이 다른 서버에서 몇 달 동안 잘 실행되고 있었기 때문에 그곳을 보는 것을 잊어버렸습니다.
답변2
나는 다음 줄을 수정하여 문제를 해결했습니다 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
그러면 메일이 전송되었습니다.