我得到以下相当恼人的错误信息:
Sender address rejected: not owned by user subscription@****.ca; from=<subscription@****.ca> to=<webmaster@****.ca> proto=ESMTP helo=<[192.168.2.34]>
而我的postconf -n :
alias_database = hash:/etc/aliases alias_maps = hash:/etc/aliases append_dot_mydomain = no biff = no broken_sasl_auth_clients = yes canonical_maps = hash:/etc/postfix/canonical config_directory = /etc/postfix default_destination_concurrency_limit = 5 disable_vrfy_command = yes dovecot_destination_recipient_limit = 1 home_mailbox = Maildir/ inet_interfaces = all mailbox_command = /usr/lib/dovecot/deliver -c /etc/dovecot/conf.d/99-mail-stack-delivery.conf -m "${EXTENSION}" mailbox_size_limit = 0 message_size_limit = 104857600 milter_connect_macros = j {daemon_name} v {if_name} _ milter_default_action = accept mydestination = localhost myhostname = ****.ca mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 myorigin = /etc/mailname non_smtpd_milters = $smtpd_milters readme_directory = no recipient_delimiter = + relay_destination_concurrency_limit = 1 relayhost = smtp_tls_note_starttls_offer = yes smtp_tls_security_level = may smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache smtpd_banner = $myhostname ESMTP smtpd_helo_required = yes smtpd_helo_restrictions = permit_mynetworks,permit_sasl_authenticated, reject_non_fqdn_helo_hostname, reject_invalid_helo_hostname, reject_unknown_helo_hostname, permit smtpd_milters = unix:/spamass/spamass.sock unix:/opendkim/opendkim.sock smtpd_recipient_restrictions = reject_unknown_client_hostname, reject_unknown_sender_domain, reject_unknown_recipient_domain, reject_unauth_pipelining, permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination, reject_invalid_hostname, reject_non_fqdn_sender smtpd_sasl_auth_enable = yes smtpd_sasl_authenticated_header = yes smtpd_sasl_local_domain = $myhostname smtpd_sasl_path = private/dovecot-auth smtpd_sasl_security_options = noanonymous smtpd_sasl_type = dovecot smtpd_sender_login_maps = $virtual_mailbox_maps smtpd_sender_restrictions = reject_unknown_sender_domain, reject_sender_login_mismatch smtpd_tls_CAfile = /etc/ssl/certs/ca-certificates.crt smtpd_tls_ask_ccert = yes smtpd_tls_auth_only = yes smtpd_tls_cert_file = /etc/ssl/private/ssl-chain-mail-****.pem smtpd_tls_ciphers = high smtpd_tls_key_file = /etc/ssl/private/ssl-key-decrypted-mail-****.key smtpd_tls_loglevel = 1 smtpd_tls_received_header = yes smtpd_tls_security_level = may smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache smtpd_tls_session_cache_timeout = 3600s tls_random_source = dev:/dev/urandom unknown_address_reject_code = 550 unknown_client_reject_code = 550 unknown_hostname_reject_code = 550 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
基本上,我不能从本地networking以外发送邮件! 如果我从我可以select的选项中删除reject_sender_login_mismatch ,但这似乎不好…我的邮箱地图有所有主要的电子邮件帐户。 (我主演了我的域名)
我改变了“mysql-virtual-mailbox-maps.cf”中的查询variables
from: query = SELECT 1 FROM virtual_users WHERE email='%s'
到: query = SELECT email FROM virtual_users WHERE email='%s' 。
它之前没有工作,因为它需要匹配“FROM”标题和查询的返回值(reject_sender_login_mismatch)来解释这一点。
把reject_sender_login_mismatchreplace为reject_authenticated_sender_login_mismatch就行了。
在postfix main.cf中,参数reject_sender_login_mismatch 是 reject_sender_login_mismatch 的别名 reject_authenticated_sender_login_mismatch, reject_unauthenticated_sender_login_mismatch 。
外部networking无法发送电子邮件的原因是reject_unauthenticated_sender_login_mismatch (它是reject_sender_login_mismatch )将拒绝未在smtpd_sender_login_maps中定义的发件人 。
为了进一步解释这三个参数,我build议看看这个讨论 。