В процессе приема письма Вы можете делать с ним все, что хотите. Возможно, поможет virtusertable. Возможно придется свой фильтр на libmilter лабать.
Здесь только один момент. Обработка доставки в ящик - это уже LDA/LMTP. Изменить FROM нужно до этого момента (если нужно прозрачное изменение), потому что силами LDA это прозрачно не сделать - в заголовках замелькает факт переадресации.
Нужно немного не так:
пришло письмо на user@nichego.net от bill@microsoft.com
фильтр подменяет FROM на spy@google.com
письмо в таком виде падает в ящик
Это скорее всего на libmilter что-то лабать, мне стандартных средств неизвестно