URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 71693
[ Назад ]

Исходное сообщение
"отправка писем через sendmail через разные smtp-сервера"

Отправлено billybons2006 , 25-Янв-07 11:12 
Всем привет!
Сейчас почта уходит через sendmail (который работает просто как передатчик почты до smtp прова) на smtp.myprov.com Отправка проходит так: клиент локальной сети в свойствах почтовой записи в отправке пишет: сервер: 192.168.0.1, порт 25. Авторизация: mail-user/pass-for-mail-user (имя и пароль локальной учетной записи на FreeBSD с sendmail).

Но для разных почтовых ящиков может быть необходимо отправка на разные smtp.

Можно ли сделать так, чтобы в зависимости от имени юзера для авторизации при отправке письма отправлялись через разные smtp провайдера?

Например, у прова есть 3 smtp: smtp.myprov.com, smtp2.myprov.com, smtp3.myprov.com
Я сделаю 3 пользователя: smtp-user, smtp2-user, smtp3-user
В зависимости от того, какой пользователь используется, на такой smtp-сервер прова письма и перенаправляются.

Вот. Помогите, плиз. Вопрос довольно срочный!


Содержание

Сообщения в этом обсуждении
"отправка писем через sendmail через разные smtp-сервера"
Отправлено skoro , 25-Янв-07 11:26 
>Всем привет!
>Сейчас почта уходит через sendmail (который работает просто как передатчик почты до
>smtp прова) на smtp.myprov.com Отправка проходит так: клиент локальной сети в
>свойствах почтовой записи в отправке пишет: сервер: 192.168.0.1, порт 25. Авторизация:
>mail-user/pass-for-mail-user (имя и пароль локальной учетной записи на FreeBSD с sendmail).
>
>
>Но для разных почтовых ящиков может быть необходимо отправка на разные smtp.
>
>
>Можно ли сделать так, чтобы в зависимости от имени юзера для авторизации
>при отправке письма отправлялись через разные smtp провайдера?
>
>Например, у прова есть 3 smtp: smtp.myprov.com, smtp2.myprov.com, smtp3.myprov.com
>Я сделаю 3 пользователя: smtp-user, smtp2-user, smtp3-user
>В зависимости от того, какой пользователь используется, на такой smtp-сервер прова письма
>и перенаправляются.
>
>Вот. Помогите, плиз. Вопрос довольно срочный!

genericstable? нет, судя по всему mailertable...


"отправка писем через sendmail через разные smtp-сервера"
Отправлено billybons2006 , 25-Янв-07 11:38 
>genericstable? нет, судя по всему mailertable...

Сенкс. Вот как раз этим mailertable занимаюсь... По крайней мере, судя по названию, должно подойти.


"отправка писем через sendmail через разные smtp-сервера"
Отправлено billybons2006 , 25-Янв-07 11:56 
Насколько я понял, mailertable позволяет, например, направить письмо с адресом user@domain.ru через smtp.prov.ru, а user@domain.com - через smtp2.prov.com

Но это не совсем то, что надо :( Адресов, на которые посылаются письма - мульоны, их всех не забить в майлертабле :(

Может, я чего-то не понял?

Вот если бы можно было сделать примерно так:
user1   smtp.prov.ru
user2   smtp2.prov.ru

(где user1 и user2 - имена локальных пользователей)


"отправка писем через sendmail через разные smtp-сервера"
Отправлено billybons2006 , 25-Янв-07 12:50 
Вроде можно как-то сделать через .forward (лежит себе в директории пользователя). Но вот что именно там надо писать - не могу найти

"отправка писем через sendmail через разные smtp-сервера"
Отправлено Medlar , 25-Янв-07 13:01 
Если я правильно понимаю, нужна переадресация в
зависимости от адреса отправителя?
Тогда
http://anfi.homeunix.net/sendmail/smarttab.html
http://www.cs.niu.edu/~rickert/cf/hack/sender_based_routing.m4

"отправка писем через sendmail через разные smtp-сервера"
Отправлено billybons2006 , 25-Янв-07 13:05 
>Если я правильно понимаю, нужна переадресация в
>зависимости от адреса отправителя?
>Тогда
>http://anfi.homeunix.net/sendmail/smarttab.html
>http://www.cs.niu.edu/~rickert/cf/hack/sender_based_routing.m4

Спасибо! Ознакомлюсь и отпишусь!!!


"отправка писем через sendmail через разные smtp-сервера"
Отправлено billybons2006 , 25-Янв-07 14:56 
>Если я правильно понимаю, нужна переадресация в
>зависимости от адреса отправителя?
>Тогда
>http://anfi.homeunix.net/sendmail/smarttab.html
>http://www.cs.niu.edu/~rickert/cf/hack/sender_based_routing.m4

Это просто великолепно! Не совсем так, как я хотел, но, полагаю, можно даже самому кой-чего подправить :)

В итоге сделал, что если отправитель mail@mydomain.ru, то smtp будет smtp1@myprov.ru, а если отправитель mail2@mydomain.ru, то - smtp2@myprov.ru!!!

Осталось еще сообразить, как сделать smtp по умолчанию.
@                relay:smtp.myisp.com
из первой ссылки почему-то не работает, ну да это дело временное!
Как раз будет еще одна возможность изучить этот пресловутый m4 :)


"отправка писем через sendmail через разные smtp-сервера"
Отправлено Medlar , 25-Янв-07 16:22 
>Осталось еще сообразить, как сделать smtp по умолчанию.
>@            
>    relay:smtp.myisp.com
>из первой ссылки почему-то не работает, ну да это дело временное!

Так можно спросить автора, e-mail Andrzej Filip указан на странице,
кроме того он один из тех, кто регулярно отвечает на sendmailовской конфе.

>Как раз будет еще одна возможность изучить этот пресловутый m4 :)
Успехов и терпения:), зато потом из sendmail будешь "веревки вить"



"отправка писем через sendmail через разные smtp-сервера"
Отправлено enmar , 06-Фев-07 10:22 
>>Осталось еще сообразить, как сделать smtp по умолчанию.
>>@            
>>    relay:smtp.myisp.com
>>из первой ссылки почему-то не работает, ну да это дело временное!
>
>Так можно спросить автора, e-mail Andrzej Filip указан на странице,
>кроме того он один из тех, кто регулярно отвечает на sendmailовской конфе.
>
>
>>Как раз будет еще одна возможность изучить этот пресловутый m4 :)
>Успехов и терпения:), зато потом из sendmail будешь "веревки вить"


Объясните пожалуйста как вы сделали.
Что то я ни как не могу врезаться.


"отправка писем через sendmail через разные smtp-сервера"
Отправлено billybons2006 , 06-Фев-07 11:37 
Вы имеете ввиду вообще как это было сделано? Или что-то конкретное?

"отправка писем через sendmail через разные smtp-сервера"
Отправлено enmar , 06-Фев-07 14:20 
>Вы имеете ввиду вообще как это было сделано? Или что-то конкретное?


Перед мною стоит примерно такая же задача.
То есть нужно посылать письма через разные каналы. То есть у нас несколько провайдеров.
И хотим принемать по дефолту каналу. А посылать по разным каналам.
Я так понял что вы сделали через опцию в сендмаил смартхост. И у вас имеется договоренность с провайдером что типа если с ваше хоста идет почта то ее брать и посылать. Так это или не так? А мне нужно самому разруливать почту.
То есть нужно самому почтовому серверу выбирать по какому каналу посылать почту.
Вы не в курсе как это сделать?


"отправка писем через sendmail через разные smtp-сервера"
Отправлено billybons2006 , 06-Фев-07 15:13 
>И у вас имеется договоренность с провайдером...
Ни каких специальных договоренностей о почте нет.

>Вы не в курсе как это сделать?

В общем, на странице http://anfi.homeunix.net/sendmail/smarttab.html это описано довольно неплохо.

Подробнее:
1. Создаете файл /etc/mail/smarttable
2. В него записываете то, что указано по ссылке:

test@mike.com.hk lesspopular.mailhub.com
@mike.com.hk     popular.mailhub.com
test@domain.pl   uucp:nodex
test@domain.us   esmtp:[smtp.domain.us]:my.isp
# relay for <> sender [version 8.2+ of smarttable]
@                relay:smtp.myisp.com

Смысл таков, что письма, где отправитель указан test@mike.com.hk пойдут через smtp lesspopular.mailhub.com. Ну остальные записи по аналогии. Последняя - типа, для всех остальных через smtp.myisp.com.

3. Добавляете в ваш конфигурационный файл sendmail-ла (например, sendmail.mc) следующее:

FEATURE(`smarttable')dnl

И файл sendmail.mc (точнее, его часть) будет что-то вроде этого:

...
FEATURE(mailertable, `hash -o /etc/mail/mailertable')
FEATURE(virtusertable, `hash -o /etc/mail/virtusertable')

FEATURE(`smarttable')dnl

dnl Uncomment to allow relaying based on your MX records.
dnl NOTE: This can allow sites to use your server as a backup MX without
dnl       your permission.
divert(-1)
...

4. Генерите новый .cf файл конфигурации sendmail-а (sendmail.cf или test-sendmail.cf).

5. Ну и в конце концов:

# killall sendmail
# /usr/sbin/sendmail -bd -C /etc/mail/test-sendmail.cf

В общем, так примерно.



"отправка писем через sendmail через разные smtp-сервера"
Отправлено enmar , 06-Фев-07 15:19 
>>И у вас имеется договоренность с провайдером...
>Ни каких специальных договоренностей о почте нет.
>
>>Вы не в курсе как это сделать?
>
>В общем, на странице http://anfi.homeunix.net/sendmail/smarttab.html это описано довольно неплохо.
>
>Подробнее:
>1. Создаете файл /etc/mail/smarttable
>2. В него записываете то, что указано по ссылке:
>
>test@mike.com.hk lesspopular.mailhub.com
>@mike.com.hk     popular.mailhub.com
>test@domain.pl   uucp:nodex
>test@domain.us   esmtp:[smtp.domain.us]:my.isp
># relay for <> sender [version 8.2+ of smarttable]
>@            
>    relay:smtp.myisp.com
>
>Смысл таков, что письма, где отправитель указан test@mike.com.hk пойдут через smtp lesspopular.mailhub.com.
>Ну остальные записи по аналогии. Последняя - типа, для всех остальных
>через smtp.myisp.com.
>
>3. Добавляете в ваш конфигурационный файл sendmail-ла (например, sendmail.mc) следующее:
>
>FEATURE(`smarttable')dnl
>
>И файл sendmail.mc (точнее, его часть) будет что-то вроде этого:
>
>...
>FEATURE(mailertable, `hash -o /etc/mail/mailertable')
>FEATURE(virtusertable, `hash -o /etc/mail/virtusertable')
>
>FEATURE(`smarttable')dnl
>
>dnl Uncomment to allow relaying based on your MX records.
>dnl NOTE: This can allow sites to use your server as a
>backup MX without
>dnl       your permission.
>divert(-1)
>...
>
>4. Генерите новый .cf файл конфигурации sendmail-а (sendmail.cf или test-sendmail.cf).
>
>5. Ну и в конце концов:
>
># killall sendmail
># /usr/sbin/sendmail -bd -C /etc/mail/test-sendmail.cf
>
>В общем, так примерно.
Правильно ли я понимаю что у вас имеется учетная запись на каждом провайдерском почтовом сервере. И Вы через них посылаете.



"отправка писем через sendmail через разные smtp-сервера"
Отправлено billybons2006 , 06-Фев-07 15:25 
Ну в общем, если есть почтовый ящик, то и smtp/pop сервера есть. Конечно. Не у меня, а у того прова, у кого ящик зареген.

"отправка писем через sendmail через разные smtp-сервера"
Отправлено enmar , 06-Фев-07 16:39 
>Ну в общем, если есть почтовый ящик, то и smtp/pop сервера есть.
>Конечно. Не у меня, а у того прова, у кого ящик
>зареген.

А у меня ситуевина такая что нет у правайдера ящиков.
И мене не кому сдавать. Можно ли такое сделать?
Я тут подумал что кто мене мешает на каждом провайдере сделать самому по почтовому серверу. То есть поднять три почтовика по числу провайдеров. А на центральном указать что бы он отправлял письма или через одного или через другого или через третьего.
Хотя конечно это плохое решение. Кто что дмает по этому поводу?


"отправка писем через sendmail через разные smtp-сервера"
Отправлено billybons2006 , 07-Фев-07 08:54 
>>Ну в общем, если есть почтовый ящик, то и smtp/pop сервера есть.
>>Конечно. Не у меня, а у того прова, у кого ящик
>>зареген.
>
>А у меня ситуевина такая что нет у правайдера ящиков.
>И мене не кому сдавать. Можно ли такое сделать?
>Я тут подумал что кто мене мешает на каждом провайдере сделать самому
>по почтовому серверу. То есть поднять три почтовика по числу провайдеров.
>А на центральном указать что бы он отправлял письма или через
>одного или через другого или через третьего.
>Хотя конечно это плохое решение. Кто что дмает по этому поводу?

ИМХО, все равно, может пров предоставить электронный ящик или нет. Какая разница? Ты же почту получаешь с того smtp, который указан у тебя в настройках.


"отправка писем через sendmail через разные smtp-сервера"
Отправлено enmar , 07-Фев-07 19:46 
>>>Ну в общем, если есть почтовый ящик, то и smtp/pop сервера есть.
>>>Конечно. Не у меня, а у того прова, у кого ящик
>>>зареген.
>>
>>А у меня ситуевина такая что нет у правайдера ящиков.
>>И мене не кому сдавать. Можно ли такое сделать?
>>Я тут подумал что кто мене мешает на каждом провайдере сделать самому
>>по почтовому серверу. То есть поднять три почтовика по числу провайдеров.
>>А на центральном указать что бы он отправлял письма или через
>>одного или через другого или через третьего.
>>Хотя конечно это плохое решение. Кто что дмает по этому поводу?
>
>ИМХО, все равно, может пров предоставить электронный ящик или нет. Какая разница?
>Ты же почту получаешь с того smtp, который указан у тебя
>в настройках.
Так хочется получать по одному каналу а отправлять по другому каналу.
Без всяких там провайдеров и без их серверов.
Можно конечно на каждом провайдере поставить свой смтп сервер и тогда отправлять.
То есть имеется центральный на него приходит. С него снимает почту юзер и через него и посылает. А вот этот центральный сервер посылает почту юзера не сам а сдает почтовому серверу который я например поднял на канале другого провайдера. Как сделать такое дело?

"отправка писем через sendmail через разные smtp-сервера"
Отправлено billybons2006 , 07-Фев-07 20:44 
>То есть имеется центральный на него приходит. С него снимает почту юзер
>и через него и посылает. А вот этот центральный сервер посылает
>почту юзера не сам а сдает почтовому серверу который я например
>поднял на канале другого провайдера. Как сделать такое дело?

Честно гря, вы несколько меня запутали и, по-моему, это лучше отдельной темой сделать. Потому что от сути моего вопроса далеко. Сделайте новый топик, вам больше людей ответят. Тока опишите проблему точно, что вы хотите.


"отправка писем через sendmail через разные smtp-сервера"
Отправлено openmsk , 16-Янв-14 12:21 
> Подробнее:
> 1. Создаете файл /etc/mail/smarttable
> 2. В него записываете то, что указано по ссылке:
> test@domain.us   esmtp:[smtp.domain.us]:my.isp
> Смысл таков, что письма, где отправитель указан test@mike.com.hk пойдут через smtp lesspopular.mailhub.com.

У меня обратная задача, получатель письма переехал на другой сервер, но адрес у него тот же.
Как мне заставить sendmail письмо пришедшее user@domain.ru сразу перенаправлять на этот же адрес но другой smtp сервер?


"отправка писем через sendmail через разные smtp-сервера"
Отправлено anfi , 16-Янв-14 18:21 
> У меня обратная задача, получатель письма переехал на другой сервер, но адрес
> у него тот же.
> Как мне заставить sendmail письмо пришедшее user@domain.ru сразу перенаправлять на этот
> же адрес но другой smtp сервер?

You may use FEATURE(`ldap_routing').
It may be used with standard sendmail maps (hash,dbm,...) instead of LDAP queries.

https://groups.google.com/forum/#!search/ldap_routing$20null|sort:relevance|spell:false


"отправка писем через sendmail через разные smtp-сервера"
Отправлено billybons2006 , 25-Янв-07 16:24 
Народ, плиз, подскажите хороший источник для изучения m4!!!

Пытаюсь понять вот это:

LOCAL_RULESETS
SSmartTable
R$*             $: ${opMode} $| $(dequote "" $&f $) $| $1
# rewrite <> sender address (empty) to @
Ri  $| $* $| $*        $: $| $1 $| $2
R$- $| $@ $| $*        $: $| @  $| $2
R$* $| $* $| $*        $: $| $2 $| $3
# check sender in smarttable as it is (with domain part)
R$| $+ $| $*        $: $(smarttable $1 $: $) $| $1 $| $2
# check user part of sender address in smarttable
R$| $+@$+ $| $*        $: $(smarttable @$2 $: $) $| $1@$2 $| $3
# smartable found smart host
R$+ $| $* $| $*        $: $1 $| $2 $| $>95 <$1> $3
# clenup
R$* $| $* $| $*        $: $3

Но не в силах :(
Например, что такое $-, $+ - знаю уже, а что такое Ri, $| - понять не в силах. Ну и вообще. Наверняка же есть хорошие источники!

Пока лучшее, что нашел, это:
http://www.samag.ru/art/06.2006/06.2006_02.html
http://www.linuxshare.ru/docs/devel/tools/m4.html


"отправка писем через sendmail через разные smtp-сервера"
Отправлено Medlar , 25-Янв-07 19:17 
В общем, если коротко и не вдаваясь в подробности (сразу скажу, что тут мне не все понятно, почему он именно так делает)

Sendmail.cf в стандартном виде состоит из многих наборов правил перезаписи,
написанных разработчиками. На вход в эти правила подаются заранее определенные значения:
например в check_mail - адрес отправителя, в check_relay - ip-адрес и доменный адрес почтовика, установившего с тобой соединение, и т.д.
Когда ты пишешь свои наборы правил, ты можешь задать на входе какие угодно значения для дальнейшей обработки.

>LOCAL_RULESETS

Итак, задаем новый набор правил
>SSmartTable
Подаем на вход 3 переменные: текущий режим работы (берется из флага -b), адрес отправителя без кавычек и 3 пер-ую, ту что ты отправишь на вход в точке вызова данного набора правил (R$+ < @ $+ >    $: $>SmartTable $1 < @ $2 >).  Видимо, это адрес получателя.

>R$*    $: ${opMode} $| $(dequote "" $&f $) $| $1
где $| это просто метасимвол, который разделяет значения

># rewrite <> sender address (empty) to @
Тут мне не совсем понятно, зачем это: если тек. режим работы - i (что соответствует запуску sendmail с ключом bi (т.е. инициализации aliases (перечитать aliases, newaliases ),
то оставляем только второе и третье входные значения
>Ri  $| $* $| $*  $: $| $1 $| $2

Далее следует обработка случая,когда OpMode непустой ($-) и когда отправитель отсутствует ($@),
ну это бывает, когда почтовик отказывается принять письмо,
и дает сразу отлуп, тогда в логе ты можешь наблюдать from=<>.
Или когда юзер получает извещение о доставке, то отправитель тоже такой будет.
Значит, меняем пустого отправителя на @ и дальше оставляем только второе и третье значения
>R$- $| $@ $| $*  $: $| @  $| $2

Во всех остальных случаях также избавляемся от OpMode и дальше рассматриваем только адрес отправителя и получателя
>R$* $| $* $| $*  $: $| $2 $| $3

Ну а далее загоняем адрес отправителя в таблицу, если соответствие будет обнаружено,
то произойдет перезапись на то, что указано в таблице, при этом сохраняем и адрес
отправителя ($1) и адрес получателя ($2") (следующее правило не сработает)
># check sender in smarttable as it is (with domain part)
>R$| $+ $| $*  $: $(smarttable $1 $: $) $| $1 $| $2

Проверяем доменную часть адреса отправителя в таблице, в случае найденного соответствия
получаем на выход перезаписанного получателя плюс сохраненяем две другие переменные
># check user part of sender address in smarttable
>R$| $+@$+ $| $*  $: $(smarttable @$2 $: $) $| $1@$2 $| $3

Далее отправляем перезаписанный relay получателя и адрес получателя в 95 набор правил
(чтобы переписать эти данные в виде mailer host address)
># smartable found smart host
>R$+ $| $* $| $*        $: $1 $| $2 $| $>95 <$1> $3
># clenup
>R$* $| $* $| $*  $: $3


> Наверняка же есть хорошие источники!

http://www.opennet.ru/docs/RUS/sendmail2 (см. 5 главу, п 5.1 Правила перезаписи)
http://www.anrb.ru/linux/sendm.html#3.2A - документация по sendmail
а также ../sendmail/doc/op.me & ../sendmail/cf/README.



"отправка писем через sendmail через разные smtp-сервера"
Отправлено billybons2006 , 25-Янв-07 23:25 
Мега сенкс! Осмыслить смогу тока завтра, примерно в таком духе я пытался понять этот скриптик. Ведь в таком же духе можно что угодно делать! Я тока щас начинаю понимать, что мона делать с сендмайлом!

"отправка писем через sendmail через разные smtp-сервера"
Отправлено Andrzej Filip , 26-Янв-07 03:52 
>Тут мне не совсем понятно, зачем это: если тек. режим работы -
>i (что соответствует запуску sendmail с ключом bi (т.е. инициализации aliases
>(перечитать aliases, newaliases ),
>то оставляем только второе и третье входные значения
>>Ri  $| $* $| $*  $: $| $1 $| $2

The idea was to "disable" smart table during newaliases processing.
I had ugly problems with aliases and newaliases command after adding handling <> sender to initial "simple" version. Today I would write it "slightly different" but but I keep it as it is according to rule "do not fix what is not broken" :-)

I detected the thread browsing references in logs of anfi.homeunix.net
I think I can understand/read Russian but writing would be too difficult due to lack of practice.


"отправка писем через sendmail через разные smtp-сервера"
Отправлено billybons2006 , 26-Янв-07 09:19 
Andrzej Filip, where I can read more about m4? I can understand it, but I needing a lessons :)
And by the way, it is possible to use your script to select a smtp relay depends on an ip-address of local networks sender mashine?

"отправка писем через sendmail через разные smtp-сервера"
Отправлено Andrzej Filip , 26-Янв-07 19:43 
> Andrzej, where I can read more about m4? I can understand
> it, but I needing a lessons :)

I would recommend The Bat Book 3rd edition (1st and 2nd editions are "outdated"):
  http://www.oreilly.com/catalog/sendmail3/
*BUT*
* It is a big book (1_000+ pages). I achieved "enlightenment" during *third pass* (of 1st edition) - it takes "some time" to "swallow the book".
* Next major version of sendmail (not sendmail 8.*.*) are going to be "quite unlike" (pretty different) than sendmail-8.

Think "a little" before investing your time in big amounts.

> And by the way, it is possible to use your script to
> select a smtp relay depends on an ip-address of local networks
> sender mashine?

It would require quite simple modification
* using $&{client_addr} instead of $&f
* other sequence different lookups - four lookups i classic sendmail way of handling "octet boundary" nets (*/32 a.b.c.d, */24 a.b.c, */16 a.b, */8 a).

No "rocket science" would be required ;-)

BTW I consider switching my "most preferred MTA" to a MTA under GPL license.


"отправка писем через sendmail через разные smtp-сервера"
Отправлено billybons2006 , 28-Янв-07 18:02 
>Think "a little" before investing your time in big amounts.

Ok, thanks, I'll think about it!

>It would require quite simple modification
>* using $&{client_addr} instead of $&f
>* other sequence different lookups - four lookups i classic sendmail way
>of handling "octet boundary" nets (*/32 a.b.c.d, */24 a.b.c, */16 a.b,
>*/8 a).

I have to test it before, but thanks a lot!

>No "rocket science" would be required ;-)

:)


"отправка писем через sendmail через разные smtp-сервера"
Отправлено billybons2006 , 30-Янв-07 12:23 
Вот еще проблема теперь всплыла: многие почтовые сервера требуют авторизации при отправке писем. Например, при отправке письма из локальной сети от имени mail@somemail.uk, сервер somemail.uk требует авторизацию при отправке. Но: авторизация для отправки письма у меня уже пройдена на моем почтовом шлюзе (который шлет всю почту наружу). Может быть, есть какие-нить идеи? И вообще, я хочу в идеале копировать ВСЮ почту (входящую и исходящую) через почтовый комп. Может есть более "нормальный" способ это сделать, чем тот, что я выбрал?

Т.е. сейчас юзер отправляет письмо наружу, авторизуясь на почтовом сервере для пересылки. При этом его отправленное письмо копируется на дополнительный локальный адрес. При этом в зависимости от того, какой адрес отправителя указан в почтовом клиенте, такой smtp и используется.

Но т.к.:
1. Часто надо быстро поменять у конкретного юзера сервер smtp для отправки (при этом адрес отправителя не меняется)
2. Приходится отправлять письма от серверов, которые сами требуют авторизацию

то приходится думать о том, как просто перехватывать весь почтовый трафик. Например, насколько я понимаю, можно средствами ipfw взять и направить весь исходящий на 25 порт трафик и направить его на другой порт, на котором стоит другая копия сендмайла (или вообще на соседний бекап компутер), а исходный пакет послать дальше? Таким образом, я буду независим от сендмайла на шлюзе (шлюз будет просто через nat все перенаправлять и дублировать почтовый трафик).

Огромное спасибо всем отозвавшимся. Ваши советы оказались очень ценными!


"отправка писем через sendmail через разные smtp-сервера"
Отправлено Medlar , 08-Фев-07 11:06 
>Вот еще проблема теперь всплыла: многие почтовые сервера требуют авторизации при отправке
>писем. Например, при отправке письма из локальной сети от имени mail@somemail.uk,
>сервер somemail.uk требует авторизацию при отправке. Но: авторизация для отправки письма
>у меня уже пройдена на моем почтовом шлюзе (который шлет всю
>почту наружу). Может быть, есть какие-нить идеи?
Насколько я понимаю, те релеи, которые вы указали в smarttable, не ваши?
Тогда, наверное, надо договариваться с админами тех релеев, чтобы они для ваших клиентов делали исключение на авторизацию.

И вообще, я хочу
>в идеале копировать ВСЮ почту (входящую и исходящую) через почтовый комп.
>Может есть более "нормальный" способ это сделать, чем тот, что я
>выбрал?
http://www.anrb.ru/linux/sendm.html#3.15


"отправка писем через sendmail через разные smtp-сервера"
Отправлено billybons2006 , 09-Фев-07 11:36 
>Насколько я понимаю, те релеи, которые вы указали в smarttable, не ваши?
>Тогда, наверное, надо договариваться с админами тех релеев, чтобы они для ваших
>клиентов делали исключение на авторизацию.

К сожалению, не выход в моем конкретном случае.

>http://www.anrb.ru/linux/sendm.html#3.15

Спасибо. Ссылки видел, единственное, руки не дошли еще до milter. Надо будет его изучить подробнее. Пока я использую правило ipfw для перенаправления всего исходящего почтового трафика на локальный sendmail, а уже он, скопировав письма, отдает их дальше.

Еще раз спасибо за ответы! В настоящее время вынужден сделать перерыв в исследованиях на эту тему по причине крайней загруженности.


"отправка писем через sendmail через разные smtp-сервера"
Отправлено YuryD , 09-Фев-07 16:40 
>Всем привет!
>Сейчас почта уходит через sendmail (который работает просто как передатчик почты до
>Можно ли сделать так, чтобы в зависимости от имени юзера для авторизации
>при отправке письма отправлялись через разные smtp провайдера?
>
>Например, у прова есть 3 smtp: smtp.myprov.com, smtp2.myprov.com, smtp3.myprov.com
>Я сделаю 3 пользователя: smtp-user, smtp2-user, smtp3-user
>В зависимости от того, какой пользователь используется, на такой smtp-сервер прова письма


А завести 3 почтовых ящика для каждой учетной записи с разными smtp для отправки религия не позволяет ? 3 разных юзера - это все равно 3 разные учетные записи почты.


"отправка писем через sendmail через разные smtp-сервера"
Отправлено billybons2006 , 09-Фев-07 16:54 
> А завести 3 почтовых ящика для каждой учетной записи с разными
>smtp для отправки религия не позволяет ?

Я исповедую opensource, она многое позволяет ):

> 3 разных юзера -
>это все равно 3 разные учетные записи почты.

Поясню. Есть рабочая станция. На ней настроены 5 почтовых ящика на прием и отправку писем разных провайдеров (почтовые ящики все без исключения не моего почтового сервера, а внешних провайдеров). Так вот, бывают ситуации, когда отправляя письмо, мне приходит ответ, что мол, 550: We dont accept mail from spammers или что-нить вроде этого. Я - не спамер. Мой пров - тоже. Но т.к. пров мой очень крупный, то периодически один из его smtp попадает в черный список кого-либо. Но еще не было ситуаций, когда все smtp моего прова попали в этот черный список. Проблема решается, если в настройках клиента менять адрес smtp (один из smtp прова, который не в черном списке). Но бегать по юзерам я не хочу. Внешнюю почту юзера отправялют, проходя авторизацию на моем шлюзе. И вот в зависимости от этого имени я и хотел бы направлять исходящие письма через разные smtp моего прова. Фуф. Написал :)