特定のローカルユーザーが外部アドレスに送信したメールを削除する方法は?

特定のローカルユーザーが外部アドレスに送信したメールを削除する方法は?

私のユーザーの1人が外部アドレスに送信したメールを自動的に削除/削除するようにPostfixをどのように設定しますか?

次のTransport_mapsを使用して、外部アドレスに送信されたすべてのメールを削除できました。

example.com      :
*          discard:

しかし、私はこのルールをPostfixサーバーの1人のユーザーにのみ適用したいと思います。

また、外部およびローカルアドレスに送信されたメールは、ローカルユーザーにのみ送信する必要があります。

なぜこれが必要ですか?

私が働いている会社では、インターンが顧客に直接電子メールを送ってはいけないと思います。したがって、インターンはクライアントのアドレスを使用してメールを送信し、toここにスーパーバイザーを追加しますcc。その後、Postfixは、クライアントのアドレスを取得することなく、クライアントにメールを確認して送信できるように、スーパーバイザにメールを転送するだけです。

答え1

OPが望むことを達成するためには、伝送レベルで確認する必要がありましたが、これは単純なものでした。

  1. 次の行を追加します。/etc/postfix/main.cf

    sender_dependent_default_transport_maps = hash:/etc/postfix/sender_transport_maps
    
  2. 作る/etc/postfix/sender_transport_maps次のように

    [email protected]   discard
    
  3. postfixマッピングファイルの生成とpostfixの再起動

    cd /etc/postfix
    postmap sender_transport_maps
    service postfix restart
    

postfixはアウトバウンドメールにのみトランスポートマッピングを使用するため、この方法は効果的です。この場合、通常のsmtpサービス(smtp:)を使用する代わりにpostfix DISCARDサービスを使用します。

答え2

sender_dependent_default_transport_mapsはまったく機能しません。デバッグを追加するためにmaster.cfでsmtpd -vvを使用しても機能しない理由(おそらく以前のpostfixバージョン)を教えるのには役立ちません。

代わりに、

smtpd_sender_restrictions = check_sender_access  pcre:/etc/postfix/sender_domains, discard

sender_domainsファイルには次のものが含まれています。

/[email protected]/  DISCARD
/@domain.com/ OK

たとえば、postfixを再起動します(PCREファイルは不要またはpostmap'dできません)。

関連情報