Configuring autoforward sender address¶
Customer would like to have auto forwarding feature as described below:
Scenario:
(User A -> User B (Auto forwarder) -> User C)
B@example2.com is an App Suite user at cust.
An email is sent from
A@example1.com
toB@example2.com
B@example.com set an auto-forward rule so emails are being forwarded to
C@example3.com
automatically.C@example3.com received the forwarded mail.
- Current behavior:
The mail received by
C@example3.com
hasmail from
headerA@example1.com
(i.e. the
mail from
is unchanged by OX App Suite when forwarding to user C)
- Requested behavior:
The mail received by
C@example3.com
hasmail from
headerB@example2.com
(i.e. the
mail from
has been changed by user B (OX App Suite in customer) when forwarding to user C, so the mail looks like as if it was originally sent by user B)
- Reason for the request:
Currently, the mails being auto forwarded by user B are occasionally get failed to pass SPF check somewhere in the path, which will result that the mail cannot be forwarded to user C.
Solution:¶
Sieve needs to have
plugin {
# Use editheader
sieve_extensions = +editheader
}
The following is an example of what the Sieve rules could look like:
require "editheader";
require "variables";
require "envelope";
# ... Any other rules
# Obtain the user's full email address somehow
# It can be obtained from the recipient address (without full name)
# An alternative is to put the primary address into the script as a literal.
if envelope :matches "to" "*" { set "user_email" "${1}"; }
# This part of the script MUST be the final rule, otherwise other rules are
# affected since the message is modified.
# Drop the original "From:" header
deleteheader "from";
# Add a new "From:" header
addheader "From" "${user_email}";
redirect "forward@example.com";
Note
It is very important to make that deleteheader, addheader, redirect the last rule in the sieve script, as this would affect other actions as well