I want to be able to easily forward mail addressed to one domain to another. I want to be able to create a rule which says:

Match recipient:
^([^@]+)@olddomain.com$

Redirect to:
\1@newdomain.com
Also, I want to be able to do something like this:

Match recipient:
^([^+@]+)(\+[^+@]+)*@(.+)$

Redirect to:
\1@\3
In other words, for each domain I control, I want addresses which look like "username+with+arbitrary+strings+separated+by+pluses@mydomain.com" to be redirected to "username@mydomain.com".

I want to be able to do this on a per-recipient basis (regardless of what the actual e-mail headers say).

Is there any (easy) way to do this currently (without e.g., piping to procmail)?