2

現在、次の方法で受信メールを .forward でフィルタリングしています。

if $header_to: matches "(office|info)@domain.com" then
    save Maildir/.office/
endif
if $header_to: matches "whatever@domain.com" then
    save Maildir/.whatever/
endif

そのため、さまざまなアドレスのメールを受信するメールアカウントがあります。基本的に、メールの送信先アドレスに基づいて、異なるサブディレクトリに着陸させたいと考えています。

これは、受信者がto-header にあるメールでは機能しますが、受信者がbcc.

-header で送信されたメールを受信すると、bcc-header のみがenvelope-toメールの配信先の実際のアドレスと一致し、Received-headerに記載されています。

Envelope-to: office@domain.com

Received: from mail.other.domain ([1.1.1.1])
    by mail.domain.com with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32)
    (Exim 4.71)
    (envelope-from <sender@other.domain>)
    id 1RO5xc-0001TF-Qj
    for office@domain.com; Wed, 09 Nov 2011 12:04:57 +0100
...
To: can_be_anything@whatever.com

私はすでに試しました:

if $header_envelope-to: matches ...

しかし、これは機能しません。-header で送信された場合でも、メールはまったくフィルタリングされませんTo( Envelope-To-header は forward-files では使用できないようです)。Received(複数の) -headersを解析しようとする必要がありますか?

実際の受信者アドレスに基づいて、受信者のサブディレクトリにメールを移動するにはどうすればよいですか?

4

2 に答える 2

1

私はついに答えを見つけたようです。

if $original_local_part matches "office|info" then
    save Maildir/.office/
endif

これはlocal_partのみをチェックしますが、ドメインも使用するように拡張できます$original_domainドキュメントを参照)

于 2012-03-20T15:36:39.817 に答える
1

変数$recipientsには、すべての ( toccおよびbcc) 受信者が含まれます。試してみましたか?

于 2015-09-03T08:40:14.150 に答える