Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Архив форумов ЦИТФорума
Море(!) вопросов - Море(!) ответов
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
Как правильно задавать вопросы

Kak forwardit' vsyu pochtu ? (sendmail)

 
Перейти:  
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Unix
Предыдущая тема :: Следующая тема  
Автор Сообщение
nikyev
Гость





СообщениеДобавлено: Ср Сен 04 2002 10:06    Заголовок сообщения: Kak forwardit' vsyu pochtu ? (sendmail) Ответить с цитатой

Kak perenapravit' vsyu pochtu (ne tol'ko vhodyashuyu, no i ishodyashuyu) v sendmaile ?
Вернуться к началу
Борис
Гость





СообщениеДобавлено: Ср Сен 04 2002 11:15    Заголовок сообщения: Re: Kak forwardit' vsyu pochtu ? (sendmail) Ответить с цитатой

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

PS. Для sendmail'а по технологии обработки писем нет "входящей" или "исходящей" почты. Любая почта переправляется через определенный почтовый агент согласно адресу получателя. Это делается однообразно для любой почты.
Вернуться к началу
nikyev
Гость





СообщениеДобавлено: Ср Сен 04 2002 12:17    Заголовок сообщения: Re: Kak forwardit' vsyu pochtu ? (sendmail) Ответить с цитатой

Ya delayu file .forward so strokami tipa `me@dom.com` - i prihodyashaya pochta idyot na me@dom.com, no ishodyashaya - net.
Вернуться к началу
nikyev
Гость





СообщениеДобавлено: Ср Сен 04 2002 12:21    Заголовок сообщения: Re: Kak forwardit' vsyu pochtu ? (sendmail) Ответить с цитатой

Mozhno primer stroki dlya mailertable ?
For example, ya hochu, chtobi pochta (i prihodyashay, i ishodyashaya) dlya conkretnogo adresa user_1@dom.com, dublirovalas' i na user_2@dom.com.
Вернуться к началу
Борис
Гость





СообщениеДобавлено: Ср Сен 04 2002 13:36    Заголовок сообщения: Re: Kak forwardit' vsyu pochtu ? (sendmail) Ответить с цитатой

sendmail переправляет локальную почту почтовому агенту /usr/libexec/mail.local (или другой аналогичной программе), а дальше судьба этих писем его не интересует. Локальная почта -- это почта, адресованная пользователю той машины, где работает сам sendmail, и, естественно, на localhost.

Файл .forward поэтому исполняется не sendmail'ом, а почтовым агентом.

Исходящую почту клиента этот агент не обрабатывает, соответственно, файлом .forward тут не помочь.

Что делать -- в ответе на следующую реплику.
Вернуться к началу
nikyev
Гость





СообщениеДобавлено: Ср Сен 04 2002 14:27    Заголовок сообщения: Re: Kak forwardit' vsyu pochtu ? (sendmail) Ответить с цитатой

Tak chto zhe delat' ? U menya sendmail + mail.local + popper. Ya hochu dublirovat' vsyu pochtu dlya usera user@my.dom.com.
Вернуться к началу
and3008



Зарегистрирован: 12.10.2001
Сообщения: 14893
Откуда: Н.Новгород

СообщениеДобавлено: Ср Сен 04 2002 14:52    Заголовок сообщения: Пример (+) Ответить с цитатой

В файле mailertable прописываем:
user@domain.ru ESMTP:new_user@new_doman.ru

Можно использовать макросы.
%1 - это имя ящика, %2 - имя домена.

Например отправляем всю почту для домена domain.ru в один ящик.

domain.ru ESMTP:user@new-domain.ru
.domain.ru ESMTP:user@new-domain.ru
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
and3008



Зарегистрирован: 12.10.2001
Сообщения: 14893
Откуда: Н.Новгород

СообщениеДобавлено: Ср Сен 04 2002 14:54    Заголовок сообщения: Все просто (+) Ответить с цитатой

Создавай алиасы.
В файле aliases пропиши:

user: new-user@new-domain.ru

Не забудь sendmail перезапустить.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Борис
Гость





СообщениеДобавлено: Ср Сен 04 2002 15:04    Заголовок сообщения: Re: Kak forwardit' vsyu pochtu ? (sendmail) Ответить с цитатой

Вопросы про абсолютно всю почту и почту конкретного пользователя -- это разные вопросы, и по-разному решаются. Исходное утверждение следующее. Отправку почты через sendmail можно рассматривать как команду

sendmail _адрес_получ_
Вернуться к началу
nikyev
Гость





СообщениеДобавлено: Ср Сен 04 2002 15:11    Заголовок сообщения: Re: Пример (+) Ответить с цитатой

a mozhno tak -
user@domain.ru ESMTP:new_user@new_doman.ru
user@domain.ru ESMTP:user@new_doman.ru ?
V tom smisle, chtobi dublirovat', a ne prosto perenapravlyat' ?
Вернуться к началу
Борис
Гость





СообщениеДобавлено: Ср Сен 04 2002 15:12    Заголовок сообщения: Re: Все просто (+) Ответить с цитатой

Этот вариант, так же как и .forward, IMHO хорош только для дисциплинированного отправителя. Правда .forward можно, хотя и нежелательно, защитить от изменений недисциплинированным отправителем. Но псевдонимом отправитель может не пользоваться.
Вернуться к началу
nikyev
Гость





СообщениеДобавлено: Ср Сен 04 2002 15:15    Заголовок сообщения: Re: Kak forwardit' vsyu pochtu ? (sendmail) Ответить с цитатой

absolyutno vsya pochta konkretnogo usera.
Yest' user_0 s yashikom user_0@my.dom.com.
Nado, chtobi vsya yego pochya shla i k nemu, i na user_1@my.dom.com. I in, i out. S in - ponyatno, mail.local cherez .forward, a kak s `out` ?
Вернуться к началу
nikyev
Гость





СообщениеДобавлено: Ср Сен 04 2002 15:17    Заголовок сообщения: Re: Все просто (+) Ответить с цитатой

Vse pol'zuyutsya OE.
Вернуться к началу
Борис
Гость





СообщениеДобавлено: Ср Сен 04 2002 15:18    Заголовок сообщения: Re: Пример (+) Ответить с цитатой

mailertable работает в виде БД mailertable.db, в которой (сужу по косвенным признакам в документации) каждое ключевое значение уникально, либо имеет место поиск только первого ключа из одинаковых. Короче, на повторы не надейся.
Вернуться к началу
nikyev
Гость





СообщениеДобавлено: Ср Сен 04 2002 15:23    Заголовок сообщения: Re: Пример (+) Ответить с цитатой

Yasno. No dolzhe zhe bit' kakoy-to vihod ?
Chto-to vrode skritoy copy, kotoraya budet otsilat'sya na user_1@... , kogda user_0 posilayet chto-to kuda libo ?
Вернуться к началу
Борис
Гость





СообщениеДобавлено: Ср Сен 04 2002 15:40    Заголовок сообщения: Не так все просто Ответить с цитатой

Для OE.
OE забирает почту через POP/IMAP-сервер, но до этого она доставляется /usr/libexec/mail.local'ом в каталог /var/mail и он же успевает исполнить файл .forward. На приеме такое решение подходит.
При отправке OE связывается с сервером SMTP, который сразу куда-то (или в очередь, или получателю согласно адресу получателя) отправляет. Если заставишь пользователей отправлять на псевдоним, то дублирование почты будет, а не заставишь -- не будет. Да и то, таким образом будет дублироваться только почта, отправляемая по псевдониму, а не вся.
Кардинальное решение этой проблемы нетривиально. Один из подходов обозначен в реплике Борис 04-09-2002 16:04.
Вернуться к началу
Борис
Гость





СообщениеДобавлено: Ср Сен 04 2002 17:19    Заголовок сообщения: Ставишь ему трояна, который это делает, и готово :) А серьезно... Ответить с цитатой

Ставишь ему трояна, который это делает, и готово Smile
А серьезно, то вопрос поставлен не совсем корректно, и дело обстоит таким образом: sendmail -- это диспетчер почтовых агентов, в случае, если доставка к следующему узлу/машине выполняется по SMTP, он работает и как почтовый агент. Как диспетчер, он не анализирует содержимое пересылаемой информации (минимальная обработка полей From: и To: не в счет). По сути его можно считать каналом, по которому программа-отправитель (OE, mail, elm и др.) связывается в программой получателем (mail.local, uux, файл, труба и др.).
Вопрос поэтому нужно ставить так: как отправить все сообщения определенной программе (чтобы она продублировала и послала по нужному адресу получаемый файл)? Пример ответа в предыдущей реплике.
Вернуться к началу
Борис
Гость





СообщениеДобавлено: Ср Сен 04 2002 18:10    Заголовок сообщения: Повтор (здешнее ПО съело часть ответа) Ответить с цитатой

Вопросы про абсолютно всю почту и почту конкретного пользователя -- это разные вопросы, и по-разному решаются. Исходное утверждение следующее. Отправку почты через sendmail можно рассматривать как команду

sendmail _адрес_получ_ "знак_меньше" _файл_письмо_

sendmail анализирует _адрес_получ_ согласно своим правилам: сначала унифицирует адрес и сравнивает его с имеющимися в таблице mailertable. Если в таблице адрес есть, то выполняется отправка через найденный почтовый агент+аргументы, если адреса нет, но есть строка "точка агент+аргументы", отправляется через этот агент+аргументы, если нет ни того, ни другого, то отправляется через почтовый агент согласно другим правилам, например через "почтовый агент error".

Таким способом обрабатывается вообще *вся* почта, а не только от конкретного отправителя.

Далее, непосредственно перед передачей письма программе-почтовому агенту sendmail подменяет содержимое полей From: и To: в тексте письма согласно дополнительным правилам.

Таким образом, sendmail фактически не анализирует содержимое письма. В последних версия появился антиспамовый анализ отправителя, но он слишком общий, для другого случая и здесь не подходит.

В конечном счете доставку письма получателю выполняет не sendmail, а программа-почтовый агент, например /usr/libexec/mail.local доставляет письма на своей машине. Она же (а не sendmail) исполняет файл .forward

Что тебе делать? Осмыслить сказанное и заняться творчеством. Один из подходов такой: заставить sendmail принудительно прогонять *всю* почту через дополнительную программу. Такой подход применил Вакуленко из Демоса просто для конфигурирования sendmail'а. Но этот подход потребует полного переписывания правил в файле sendmail.cf вручную. Идея в том, что доставка писем выполняется в три этапа:

1) sendmail отправляет *все* письма, кроме писем со специальной меткой в адресе получателя, на обработку некоторой дополнительной программе с аргументом==адрес получателя.

2) эта дополнительная программа обрабатывает *содержимое* письма, затем посылает обработанное письмо, возможно с измененным содержимым, по адресу "адрес получателя+специальная метка". Твоя программа может послать копию письма на другой адрес (конечно, со специальной меткой).

3) sendmail при обработке письма, отправленного на "адрес получателя+специальная метка" убирает специальную метку и отправляет нужному получателю.

То есть специальная метка выполняет роль признака обработанности письма. А письмо обрабатывается своей программой, которая может следать с ним, что требуется.

Дерзай.
Вернуться к началу
nikyev
Гость





СообщениеДобавлено: Чт Сен 05 2002 14:54    Заголовок сообщения: Re: Повтор (здешнее ПО съело часть ответа) Ответить с цитатой

Spasibo-Smile))
Ne obeshayu, chto derznu, no ideya ponyatna, obyasnil tak, chto ya (chaynik v sendmaile) uhvatil srazu. Yesli reshus' nachat', to soobshu ob etom zdes' zhe.
Yesho raz spasibo.
Вернуться к началу
Показать сообщения:   
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Unix Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2002 phpBB Group
Русская поддержка phpBB

 

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 6608306, ICQ 232284597
Пресс-релизы — pr@citforum.ru
Послать комментарий
Информация для авторов
This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2006 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...