The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Написание mail-робота "
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"Написание mail-робота " 
Сообщение от vx emailИскать по авторуВ закладки(ok) on 12-Янв-05, 11:02  (MSK)
Здравствуйте,
Я бы хотел написать простого демона на С, проверяющего почту. До этого для *nix ничего не писал, поэтому даже не знаю с чего начать...
Собственно, детали:
1) mail-сервер расположен на том же сервере, что и будет демон (хотя не думаю, что от этого что-то зависит)
2) мне нужно, чтобы демон перехватывал все письма, и, если он найдет нужное письмо (скажем, с заголовком "hello, world"), то демон предпринимает какие-либо действия, например system("perl /usr/local/bin/myprog.pl")

Есть идеи, как это реализовать? :)
Можно ли все это сделать на перле, а не на С?
Еще есть одна мутная идея: когда приходят письма, они должны сохранятся на сервере в каком-то файле. Можно с некоторой периодичностью оправшивать этот файл в поисках письма...

  Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "Написание mail-робота " 
Сообщение от gyn61 Искать по авторуВ закладки(ok) on 12-Янв-05, 11:12  (MSK)
>2) мне нужно, чтобы демон перехватывал все письма, и, если он найдет
>нужное письмо (скажем, с заголовком "hello, world"), то демон предпринимает какие-либо
>действия, например system("perl /usr/local/bin/myprog.pl")

Добавляете в /etc/aliases псевдопользователя с нужным правилом. Например:

robot: "|perl /usr/local/bin/myprog.pl"

В этом случае все письма для пользователя robot идут на стандартный ввод /usr/local/bin/myprog.pl

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "Написание mail-робота" 
Сообщение от dimus Искать по авторуВ закладки(??) on 12-Янв-05, 11:54  (MSK)
И если ты коряво написал свою программу, то тебя очень быстро поимеют...
  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "Написание mail-робота" 
Сообщение от adi Искать по авторуВ закладки(??) on 14-Янв-05, 14:38  (MSK)
>И если ты коряво написал свою программу, то тебя очень быстро поимеют...
>
Для безопасности все-же лучши издеваться над копией письма. А сами письма фильтровать через procmail

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "Написание mail-робота " 
Сообщение от chip emailИскать по авторуВ закладки(ok) on 15-Янв-05, 22:51  (MSK)
>Здравствуйте,
>Я бы хотел написать простого демона на С, проверяющего почту. До этого
>для *nix ничего не писал, поэтому даже не знаю с чего
>начать...
>Собственно, детали:
>1) mail-сервер расположен на том же сервере,

неплохо было бы узнать, что за MTA. т.к. в большинстве MTA уже заложены средства фильтрации.

В целом идея такова:
а. используя штатные срества MTA реализовать фильтрацию и выполнение каких-либо действий.
алтернативный вариант, на основе той же фильтрации перенаправлять письма на некоторого пользователя этого же домена, для которого в /etc/mail/aliases прописано "| /path/to/binary".

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

5. "Написание mail-робота " 
Сообщение от XMan Искать по авторуВ закладки(ok) on 16-Янв-05, 01:52  (MSK)
Попутно, на perl-е это сделать не в пример проще, чем на C со всех точек зрения. Экран кода для разбора письма на куски и сборки кусков обратно в письмо. Ну или два экрана, если рисовать красиво и с комментариями :)

Я так к постфиксу самописный фильр подключил, который почту проверяет на вирусы и лечит в случае чего. В результате для проверки неограниченного количества писем, объема писем и количества ящиков мне нужна всего одна лицензия на антивирь, да и та для рабочей станции, а не для сервера :)

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

6. "Написание mail-робота " 
Сообщение от vx emailИскать по авторуВ закладки(ok) on 17-Янв-05, 11:39  (MSK)
Спасибо всем за ответы!
Скажу сразу, что все легально, я работаю веб-мастером и хотел бы немного облегчить себе жизнь, да и научиться чему-то новому всегда интересно :)
> robot: "|perl /usr/local/bin/myprog.pl"
На сервере стоит SendMail, от него будут письма переправляться? вместе с заголовком? копии или без сохранения там, где обычно?

> А сами письма фильтровать через procmail
Можно поподробнее про procmail? что это такое?

> неплохо было бы узнать, что за MTA. т.к. в большинстве MTA уже заложены средства фильтра%

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

7. "Написание mail-робота " 
Сообщение от vx emailИскать по авторуВ закладки(ok) on 17-Янв-05, 11:42  (MSK)
Спасибо всем за ответы!
Скажу сразу, что все легально, я работаю веб-мастером и хотел бы немного облегчить себе жизнь, да и научиться чему-то новому всегда интересно :)
> robot: "|perl /usr/local/bin/myprog.pl"
На сервере стоит SendMail, от него будут письма переправляться? вместе с заголовком? копии или без сохранения там, где обычно?

> А сами письма фильтровать через procmail
Можно поподробнее про procmail? что это такое?

> неплохо было бы узнать, что за MTA. т.к. в большинстве MTA уже заложены средства фильтрации
Что такое MTA? Я догадываюсь, что это mail transform agent или что-то в этом роде...

> Попутно, на perl-е это сделать не в пример проще, чем на C со всех точек зрения. Экран кода для разбора письма на куски и сборки кусков обратно в письмо. Ну или два экрана, если рисовать красиво и с комментариями :)
Мне нужно не совсем это :)
Нужно выкладывать на сайте пресс-релизы, которые мне шлют выше. Так как их идет по нескольку штук в день, то даже через веб-интерфейс их выкладывать сложно :(
А так я бы хотел просто переправлять письма роботу с нужной командой в заголовке, например: !mailbot release.


  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

8. "Написание mail-робота " 
Сообщение от gyn61 Искать по авторуВ закладки(ok) on 17-Янв-05, 19:38  (MSK)
>> robot: "|perl /usr/local/bin/myprog.pl"
>На сервере стоит SendMail, от него будут письма переправляться? вместе с заголовком?
>копии или без сохранения там, где обычно?

Письма будут перенаправляться целиком и без сохранения. Можете проверить это так:

robot: "|cat >/tmp/robot.txt"

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

9. "Написание mail-робота " 
Сообщение от zZz Искать по авторуВ закладки on 17-Янв-05, 20:43  (MSK)
о!я как раз недавно писал pop3 клиент под никс.
Правда так до конца и не закончил,но прога может скачать с заданного мылбокса все письма,и сохранить.А дальше добавить функцию по которой письма будут откидыватся несложно.вот.

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

10. "Написание mail-робота " 
Сообщение от chip emailИскать по авторуВ закладки(ok) on 19-Янв-05, 19:41  (MSK)
>о!я как раз недавно писал pop3 клиент под никс.

ИМХО, это из разряда велосипедов. Для того же perl'a существует множество модулей, реализующих подобную функциональность. В качестве конечного приложения неплохим выбором служит fetchmail

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

12. "Написание mail-робота " 
Сообщение от vx emailИскать по авторуВ закладки(ok) on 31-Янв-05, 12:52  (MSK)
Не получилось...
SendMail уже сконфигурирован (не мной), я сделал следующее:
1. Добавил юзера robo
2. Написал в /etc/aliases строчку:
robot: "|cat >/tmp/robot.txt"
3. Выполнил newaliases
4. Послал письмо и... ничего :/ по идее должен создаться файл /tmp/robot c текстом, но его не оказалось... почему не знаю :(
Может надо SendMail переконфигурировать?
  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

11. "Написание mail-робота " 
Сообщение от XMan Искать по авторуВ закладки(ok) on 20-Янв-05, 02:11  (MSK)
> На сервере стоит SendMail, от него будут письма переправляться?

А куда они денутся, если построишь :)

> вместе с заголовком?

Вместе со всем :)

> копии или без сохранения там, где обычно?

А это зависит от скрипта или того, кому он будет передавать. Можно построить procmail на предмет отправки копий письма по разным назначениям - одну твоему скрипту, другую куда-то там т.д. У этого варианта сразу два плюса - не нужно строить sendmail на предмет разрешения запуска твоего скрипта через smrsh (попутно в какой-то степени защитишься от дырок в своем скрипте), а так же не нужно будет реализовывать эту функциональность в своем скрипте.

> Можно поподробнее про procmail? что это такое?

Дополнение к MTA предназначенное для разбора писем по определенным критериям. Последние ты задаешь в конфигурационном файле, который передается procmail-у.
Например, строка в /etc/aliases

mailuser:     |"/usr/bin/procmail /etc/mail/procmail/mailuser_process"

скажет MTA отдать письмо procmail-у, который обработает его в соответствии с правилами из файла /etc/mail/procmail/mailuser_process

> Что такое MTA?

Mail Transport Agent. Это sendmail, postfix, qmail и др.

> Нужно выкладывать на сайте пресс-релизы, которые мне шлют выше.

Вот для этого я и предлагаю перл. Разобрать письмо на составные части, в частности, выдрать из него вложенные файлы и сложить, куда нужно - это как раз куда как проще сделать на perl, чем на c/c++

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх


Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Спонсоры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2022 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру