(仮想)ユーザーが自分が所有する「送信者:」アドレスを使用してのみ送信できるサフィックス構成を設定しようとしています。だから私は飛び込んreject_authenticated_sender_login_mismatch
だsmtpd_sender_restrictions
。
使用
query = SELECT goto FROM alias WHERE address='%s' and active=1;
私の場合は、sender_login_maps.cf
私が希望する送信者アドレスを使用してメールを送信できますmadeup@not_my_domain.com
。
しかし、
postmap -q "madeup@not_my_domain.com" mysql:/etc/postfix/sql/sender_login_maps.cf
期待どおりに何も返されません。
今度はクエリを次に変更すると
SELECT goto FROM alias WHERE address='notinthedatabaseforsure' and active=1;
まったくメールを送信できません。今まではそんなに良くなった。しかし、ログによると
postfix/smtps/smtpd[11683]: NOQUEUE: reject: RCPT from...: 553 5.7.1 <[email protected]>:
Sender address rejected: not owned by user [email protected]; from=<[email protected]> to=<[email protected]> proto=ESMTP helo=<[192.168.2.103]>
で送ろうとしてもmadeup@not_my_domain.com
。[email protected]
ログイン名、[email protected]
受信者です。
正しい設定では、次のことが期待できます。
postfix/smtps/smtpd[11683]: NOQUEUE: reject: RCPT from ...: 553 5.7.1 <madeup@not_my_domain.com>:
Sender address rejected: not owned by user [email protected]; from=<madeup@not_my_domain.com> to=<[email protected]> proto=ESMTP helo=<[192.168.2.103]>
したがって、postfixはログイン名を使用して送信者のアドレスに関係なくログイン名を取得するようです。これは、前述のクエリを使用して送信者アドレスに送信できる理由を説明します。
修正する:私のSQLログを確認しましたが、実際にMySQLサーバーはmadeup@not_my_domain.com
ログインアドレスと受信者アドレスのみを取得します[email protected]
。
master.cfとmain.cfのsmtpsセクションは次のとおりです。
smtps inet n - - - - smtpd -o syslog_name=postfix/smtps -o smtpd_tls_wrappermode=yes -o tls_preempt_cipherlist=yes -o smtpd_tls_security_level=暗号化 -o smtpd_sasl_auth_enable=はい -o smtpd_client_restrictions=permit_sasl_authenticated,rejected -o milter_macro_daemon_name=原産地 -o smtpd_sasl_type=ハト -o smtpd_sasl_security_options=noanonymous -o smtpd_relay_restrictions=reject_non_fqdn_recipient, recognition_unknown_recipient_domain, 許可_mynetworks, 許可_sasl_authenticated, 拒否 -o milter_macro_daemon_name=原産地 -o cleanup_service_name=ヘッダ整理コミット
マイネットワーク = 127.0.0.0/8 inet_interfaces=すべて mydomain=ドメイン名.com myhostname=mail.domain.com 私のソース= $mydomain 私の目的地= リレーホスト= smtpd_relay_restrictions=permit_mynetworks, allowed_sasl_authenticated,ject_unauth_destination, recognition_non_fqdn_recipient smtpd_recipient_restrictions = 私のネットワークを許可し、 許可_sasl_認証、 Reject_non_fqdn_ホスト名、 FQDNではなく発信者を拒否します。 FQDNではなく受信者を拒否します。 拒否_unauth_ターゲット、 拒否_unauth_パイプライン、 無効なホスト名の拒否 smtpd_sender制限= FQDNではなく発信者を拒否します。 不明な発信者ドメインの拒否、 拒否_unauth_パイプライン、 accept_authenticated_sender_login_mismatch, allowed_sasl_authenticated smtpd_helo_required=はい smtpd_helo_restrictions=permit_mynetworks deny_invalid_helo_hostname accept_non_fqdn_helo_hostname 拒否_不明_helo_ホスト名 smtpd_data_restrictions=deny_unauth_pipelined smtpd_sasl_auth_enable=はい smtpd_sasl_security_options = noanonymous,noplaintext smtpd_sasl_type=鳩 smtpd_sasl_path =個人/認証 postscreen_access_list=permit_mynetworks cidr:/etc/postfix/postscreen_access postscreen_blacklist_action=削除 postscreen_greet_action =下にしてください postscreen_dnsbl_threshold = 2 postscreen_dnsbl_sites = dnsbl.sorbs.net*1、bl.spamcop.net*1、ix.dnsbl.manitu.net*2、zen.spamhaus.org*2 postscreen_dnsbl_action=削除 virtual_alias_maps = mysql:/etc/postfix/sql/aliases.cf virtual_mailbox_maps = mysql:/etc/postfix/sql/accounts.cf virtual_mailbox_domains = mysql:/etc/postfix/sql/domains.cf リレードメイン = mysql:/etc/postfix/sql/relay_domains.cf smtpd_sender_login_maps = mysql:/etc/postfix/sql/sender_login_maps.cf virtual_uid_maps =静的:3000 virtual_gid_maps =静的:3000 virtual_mailbox_base = /home/vmail # NIS ルックアップ警告を無効にします。 alias_maps=ハッシュ:/etc/aliases Append_mydomain=いいえ 受信者の区切り文字 = +
ベストアンサー1
ログインしたユーザーが使用する前に必要な[email protected]
方法でのみ送信できる場合[email protected]
reject_sender_login_mismatch
permit_sasl_authenticated
smtpd_sender_restrictions =
# ... skip ...
reject_sender_login_mismatch
permit_sasl_authenticated
このオプション機能を含む両方 reject_authenticated_sender_login_mismatch
の合計です
reject_unauthenticated_sender_login_mismatch
。
また、ユーザーのSQLクエリが電子メール(ログインとも呼ばれる)を返すことを確認してください。これに対してpostfixはテストを実行します。ただ戻ったり1
、別の「実際の」値を返した場合、期待どおりに動作しない可能性があります。