Представим, что у нас есть два ящика bill@domain.com и joe@domain.com и два алиаса info@domain.com и sales@domain.com. Оба алиаса указывают на оба ящика, т.е. info: bill, joe; sales: bill, joe. Нужно, чтобы почта, отправленная на sales@domain.com попадала в папку sales обоих пользователей, и, соответственно, info@domain.com - в Info обоих пользователей. При этом в заголовках письма в «To:» может быть написано что угодно, хоть «undisclosed-recipient». Первое решение: дописывать при получении в заголовок (например X-Envelope-To:) получателя из конверта, а потом в sieve-скрипте проверять значение этого заголовка. Работать, наверное, будет, но люди говорят, что этим будут вскрываться все BCC письма, что не есть хорошо. Есть ли другие решения? Например, можно сохранить TO: из конверта в отдельный файл, но как его потом проверить из скрипта Sieve?
Второй вопрос аналогичный. Хочется иметь возможность проверить имя пользователя, которое использовалось в SMTP AUTH при его доставке на сервер. Решение может быть аналогичным, и с тем же недостатком: записать имя в какой-нибудь заголовок (например в X-Auth-Sender) и в скрипте его проверять.
Если никто ничего не предложит, придется так и сделать. Тогда подскажите, как красиво и эффективно задать поле заголовка e-mail сообщение? Т.е. переписать значение, если такой заголовок уже есть, или добавить, если нету. При условии, что сообщение ползёт из stdin. Может есть какой-нибудь скрипт готовый?