Sieve: Bcc recipient (envelope) filtering not possible?

after some research and many trial and errors, I couldn’t find a solution for this. Hope you can help me out here :slight_smile:

I would like to use Sieve to filter some incoming emails. Unfortunately, I’m not always listed as “To” or “Cc”, instead often hidden as “Bcc” like spammers do. Therefor I can’t use simple rules like “if address :is "to"

Usually, I would use a “envelope” filter instead – this way, Sieve would be able to catch Bcc emails as well. The issue seems to be, that this information gets lost on the way between postfix and Sieve, I assume? For example:

May 18 08:10:24 postfix/lmtp[17927]: 4AD8910008A: to=<mail AT>, orig_to=<spam AT>, relay=[]:10025, delay=6.3, delays=1/0.02/0.02/5.3, dsn=2.0.0, status=sent (250 2.0.0 <mail AT> Saved)

I have one mailbox. Mail-in-a-Box‘s aliases are configured to „forward“ all email addresses and domain names to this single mailbox. I think, this may be the reason, why Sieve is no longer getting the original envelope address?
I have verified this by a simple test rule like this:
if envelope :all :matches "to" "*" { set "env_to" " [really: ${1}]"; }
The result of this test is always: “mail AT

So, long story short: How could I fix this? Maybe there is a good way of adding the missing envelope address to all incoming mail headers as a additional X-header?