Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Разное

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: sendmail перенапровление входящей почты (Centos 5.x)
 
 автор: Inviseble_Demon   (21.11.2009 в 05:57)   письмо автору
 
 

OS Centos 5 32-bit
=========================
sendmail-doc-8.13.8-2.el5
sendmail-8.13.8-2.el5
sendmail-cf-8.13.8-2.el5

PS. Если в итоге проще с Postfix - нет проблем поставлю !

Итак задача - перехват входящей почты анализирование её на PHP и соответственно запись вердикта в MySQL.

Первая идея была бегать по файлам с письмами - отпала минуты через 2-3 так как мало того что с провами нужно поиграть так ещё и сканить постоянно и при этом с надобностью и без неё.

Далее начал упорно пожирать буквы на форумах в следствии чего пришол к примерной концепции но реализовать её непредстовляю как.

Как работает Sendmail !? http://www.samag.ru/art/05.2006/05.2006_01.html

Кто кому родитель

Итак, при обработке сообщения для локального клиента, выполняется следующая последовательность действий (см. рис. 1):

1. Удалённый сервер, желая передать нам сообщение, отправляет запрос на соединение на 25-й порт нашего сервера.

2. Процесс sendmail, обслуживающий соединения (тот, который в примере выше имеет PID 596), порождает дочерний процесс (назовём его sm1).

3. Дочерний процесс sm1 проверяет возможность принять данное сообщение (анализируя конверт, прежде всего «rcpt to:») и в случае положительного ответа помещает сообщение в очередь, в файлы qf (заголовки) и df (тело сообщения). Причём qf обычно создаётся в памяти и записывается на диск только в случае невозможности переслать письмо сразу. То есть очередь – это каталог, куда временно сохраняются почтовые сообщения, проходящие через сервер электронной почты (по умолчанию используется /var/spool/mqueue).

4. Если запись пройдёт успешно, Sendmail подтверждает факт приёма сообщения (принимая тем самым на себя всю ответственность за его дальнейшую судьбу) и завершает соединение с удалённым сервером.

5. Далее sm1 анализирует заголовок сообщения и принимает решение о том, что нужно с ним делать. Если оно предназначено для локального пользователя, то вызывается локальный агент доставки, LDA (Local Delivery Agent), которому даётся поручение положить письмо в почтовый ящик пользователя.

6. Когда LDA успешно выполняет доставку, он рапортует об этом процессу sm1, который удаляет сообщение из очереди и завершает свою работу.

http://i049.radikal.ru/0911/f8/8527be5c5448.gif
рис. 1

Тобиш все что нам нужно это LDA заставить отдать письмо PHP скрипту ну или сохранить копию файла в нужную мне директорию (/var/www/user/data/www/domin.ru/mail/file_tmp_1258755556) и вызвала

>shell php analizing_mail.php

Содержание скрипта бональная
Сканируем директорию (обять таки понятия не имею как передать параметр времени с которым файл созронили поэтому и сканирую директорию но сканить не есть гуд так как могут баги проснуться... 2 мисьма придет с интервалом микросикунды и выйдет что скрипт не найдет файл или ещё лутьше 2 раза проанализируется 1 письмо), анализируем все файлы забиваем итог в мускул удаляем файлы.


Вот собственно и вся идея.
Сейчас вот сижу и думаю.... Он же порождает дочерний процес... а посфикс нет так как у него разные приложения и что если мы модменим просто его LDA на собственный демон :nezn:
Нуб я в этих системах :D 4 день знакомлюсь впритык купил VPS отказался от лампы и пошол..... поставить апач + мускул + пхп несоставило труда и заняло с час... (поиск инфы отнял много времени)
Потом начал ставить proftpd с горем пополам реализовал на sedmail сил не хватило :(

Зашол на IPSmanager взял Demo и IPS сам все поднял я потом только прова сменил и от кого апач запускать. Ну и встал :D

Не надеюсь на лес рук но надеюсь на помощ ))


PS. Сильно инфой не давите если что.... За эти 3 дня и так голова кругом.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования