ну, собственно сабж.
Можно это вообще реализовать или нет?
поменять адрес отправителя на любой, например с user@mail.ru на user@mail.mail.ru или на user@any.ru или на any@any.any Короче не важно, главное поменять имя домена.
очень нужно.
Спасибо
http://www.postfix.org/ADDRESS_REWRITING_README.html
Можно в .forward можно написать "|command" и с помощью command делать то, что вы хотите.
>Можно в .forward можно написать "|command" и с помощью command делать то,
>что вы хотите.А можно подробнее?
Вот есть пользователь usera@mail.ru у него есть .forward файл, в нём
написано : usera@mail.comuserb@mail.ru пишет письмо к usera@mail.ru, оно форвардится о имени
отправителя (userb@mail.ru),
но мне нужно, чтобы письмо было послано не от userb@mail.ru, а от
userb@any.mail.ruв .forward интерпритируются команды bash?
"|command" - это что? интерпритация postfix команд? или bashа?Спасибо
>А можно подробнее?
Переписать адрес отправителя средствами postfix на этом этапе не возможно.
(Вы же прочитали документ ссылку на который вам дали)>в .forward интерпритируются команды bash?
Нет.>"|command" - это что? интерпритация postfix команд? или bashа?
Это означает скормить письмо в нешнюю программу.
Это программа и должна сделать то, что вы хотите.
Я дополню Answer'а. Ситуация у нас следующая: Имеются 2 сервера example.kz - чужой сервер через который релеится наш почтовый сервер our.example.kz. На example.kz есть авторизация smtp для локальных юзеров. У некоторых пользователей нашего сервера имеются форварды (.forward) на внешние ящики.
Проблема следующая: при отправке почты пользователями example.kz на те почтовые адреса у которых есть форварды на внешние ящики наш сервер пытается передать эту почту от имени того юзера который отправил это письмо. В ответ получает
Nov 17 08:31:05 our postfix/smtp[22344]: 2CAF936A57: to=<apetrov@mail.kz>, relay=mail.example.kz[192.168.2.30], delay=1, status=bounced (host mail.example.kz[192.168.2.30] said: 575 chuk@example.kz sender requires authentication).
Есть ли возможность полечить проблему средствами постфикса? Как вариант думаем подменять адрес отправителя chuk@example.kz на chuk@our.example.kz и таким образом отправлять почту по релею.
>Nov 17 08:31:05 our postfix/smtp[22344]: 2CAF936A57: to=<apetrov@mail.kz>, relay=mail.example.kz[192.168.2.30], delay=1, status=bounced (host mail.example.kz[192.168.2.30] said: 575 chuk@example.kz sender requires authentication).
Можете попытаться объяснить postmaster'у mail.example.kz, что требовать авторизации по envelope sender от MTA плохо, т.к. этот механизм разработан для MUA, а не MTA.>Есть ли возможность полечить проблему средствами постфикса? Как вариант думаем подменять адрес
>отправителя chuk@example.kz на chuk@our.example.kz и таким образом отправлять почту по релею.
Postfix релеит по адресу получателя, а не отправителя.
>Можете попытаться объяснить postmaster'у mail.example.kz, что требовать авторизации по envelope sender от
>MTA плохо, т.к. этот механизм разработан для MUA, а не MTA.
>
О!
помогло :)
пообщался с ним, он понял спол-пинка в чём дело, и, избавил меня от мук :)
Добавил мой почтовик в список хостов, которые не надо аутенцировать
>помогло :)
>пообщался с ним, он понял спол-пинка в чём дело, и, избавил меня
>от мук :)
>Добавил мой почтовик в список хостов, которые не надо аутенцировать
Вам повезло!
Мне приходится объяснять это несколько раз в неделю и не все такие понятливые:)
Зачем писать свой обработчик писем, если postfix сам может это сделать, поменять отправителя/получателя как в envelopes, так и в headers.canonical_maps
sender_canonical_maps
recipient_canonical_maps
>canonical_maps
>sender_canonical_maps
>recipient_canonical_maps
В общем случае для писем на стадии .forward это уже не будет работать.
Согласен. Просмотрел, что задача стоит после .forward переписывать.
>Согласен. Просмотрел, что задача стоит после .forward переписывать.
Jonatan, здесь проблема не в том что переписать надо после .forward (это будут новые письма, которые пойдут по цепочке local - т.е. все ok), а в том что в общем случае нет "честного" способа определить/указать то, что письмо прошло именно через .forward (а не через aliases, local, ...).
Можно попробовать, написать sender_canonical_maps = !$aliases_map, ...
Исключив алиасы и прочее, но этот "!" не документирован и не факт, что такую
возможность не оторвут в следуещей версии postfix.
2unk. Подскажите, а по Delivered-To: нельзя сделать вывод, что письмо было перенаправлено?
>2unk. Подскажите, а по Delivered-To: нельзя сделать вывод, что письмо было перенаправлено?
>
Можно если "prepend_delivered_header = forward" (по дефолту "command, file, forward")