The OpenNET Project / Index page

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

форумы  помощь  поиск  регистрация  вход/выход  слежка  RSS
"Postfix. Запуск скрипта при получении письма на ящик."
Вариант для распечатки  
Пред. тема | След. тема 
Форум Открытые системы на сервере (Почта / Linux)
Изначальное сообщение [ Отслеживать ]

"Postfix. Запуск скрипта при получении письма на ящик."  +/
Сообщение от km_zed email(ok) on 18-Ноя-16, 16:04 
Добрый день.

Нужна помощь или консультация знающих людей. Сервер на Centos, поставил и сделал базовую настройку Postfix. Теперь стоит задача настроить Postfix так, чтобы при получении письма отправленному по определенному адресу, например test@mydomain.ru, запускался скрипт. Или же настроить Postfix так, чтобы он принятое письмо сохранял в файл, а дальше incron'ом запускать скрипт.

Перелопатил кучу инфы, но толком мне могу понять как правильно настроить Posfix.

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Postfix. Запуск скрипта при получении письма на ящик."  +1 +/
Сообщение от omnomnin on 18-Ноя-16, 16:27 
> Добрый день.
> Нужна помощь или консультация знающих людей. Сервер на Centos, поставил и сделал
> базовую настройку Postfix. Теперь стоит задача настроить Postfix так, чтобы при
> получении письма отправленному по определенному адресу, например test@mydomain.ru, запускался
> скрипт. Или же настроить Postfix так, чтобы он принятое письмо сохранял
> в файл, а дальше incron'ом запускать скрипт.
> Перелопатил кучу инфы, но толком мне могу понять как правильно настроить Posfix.

ИМХО это задача не для MTA (postfix) а для LDA (напр dovecot + sieve)
google:// dovecot sieve run shell script

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

3. "Postfix. Запуск скрипта при получении письма на ящик."  –1 +/
Сообщение от km_zed email(ok) on 18-Ноя-16, 16:51 
>> Добрый день.
>> Нужна помощь или консультация знающих людей. Сервер на Centos, поставил и сделал
>> базовую настройку Postfix. Теперь стоит задача настроить Postfix так, чтобы при
>> получении письма отправленному по определенному адресу, например test@mydomain.ru, запускался
>> скрипт. Или же настроить Postfix так, чтобы он принятое письмо сохранял
>> в файл, а дальше incron'ом запускать скрипт.
>> Перелопатил кучу инфы, но толком мне могу понять как правильно настроить Posfix.
> ИМХО это задача не для MTA (postfix) а для LDA (напр dovecot
> + sieve)
> google:// dovecot sieve run shell script

Да, можно было бы и так сделать, но суть задачи еще в том, чтобы использовать по максимуму стандартные средства. И если они это могут, то надо сделать именно ими, хоть с другими средствами будет легче.

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

7. "Postfix. Запуск скрипта при получении письма на ящик."  +/
Сообщение от keir (ok) on 20-Ноя-16, 01:44 
> Да, можно было бы и так сделать, но суть задачи еще в
> том, чтобы использовать по максимуму стандартные средства. И если они это
> могут, то надо сделать именно ими, хоть с другими средствами будет
> легче.

postfix, dovecot, sieve - самые стандартные средства для обработки почты. Что вы хотите делать скриптом? Т.к. вызывать из postfix внешние скрипты - вовсе не стандартные средства...

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

8. "Postfix. Запуск скрипта при получении письма на ящик."  +/
Сообщение от km_zed email(ok) on 20-Ноя-16, 19:43 
>> Да, можно было бы и так сделать, но суть задачи еще в
>> том, чтобы использовать по максимуму стандартные средства. И если они это
>> могут, то надо сделать именно ими, хоть с другими средствами будет
>> легче.
> postfix, dovecot, sieve - самые стандартные средства для обработки почты. Что вы
> хотите делать скриптом? Т.к. вызывать из postfix внешние скрипты - вовсе
> не стандартные средства...

Подразумевается старт ftp сервера, когда приходит письмо на определенный адрес. Желательно ограничиться Postfix'ом. Но если никак, то придется работать с dovecot и sieve.

Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

12. "Postfix. Запуск скрипта при получении письма на ящик."  +/
Сообщение от _ (??) on 22-Ноя-16, 18:18 
> Подразумевается старт ftp сервера, когда приходит письмо на определенный адрес.

Яростно зашуршал попкорном.
А не озвучишь бизнескейс? Ну то есть ответ на вопрос "а напуркуа всё это?!"

Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

9. "Postfix. Запуск скрипта при получении письма на ящик."  +/
Сообщение от Bootmen (ok) on 21-Ноя-16, 04:27 
>> Да, можно было бы и так сделать, но суть задачи еще в
>> том, чтобы использовать по максимуму стандартные средства. И если они это
>> могут, то надо сделать именно ими, хоть с другими средствами будет
>> легче.
> postfix, dovecot, sieve - самые стандартные средства для обработки почты. Что вы
> хотите делать скриптом? Т.к. вызывать из postfix внешние скрипты - вовсе
> не стандартные средства...

Aliases это задокументированное средство постфикса.
У меня например в нем подцеплены скрипты на перле для узеров которым нужно получать
SMS о прибытии почты.


Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

2. "Postfix. Запуск скрипта при получении письма на ящик."  +1 +/
Сообщение от Bootmen (ok) on 18-Ноя-16, 16:28 
> Добрый день.
> Нужна помощь или консультация знающих людей. Сервер на Centos, поставил и сделал
> базовую настройку Postfix. Теперь стоит задача настроить Postfix так, чтобы при
> получении письма отправленному по определенному адресу, например test@mydomain.ru, запускался
> скрипт. Или же настроить Postfix так, чтобы он принятое письмо сохранял
> в файл, а дальше incron'ом запускать скрипт.
> Перелопатил кучу инфы, но толком мне могу понять как правильно настроить Posfix.

Самый простой способ:
добавить в файл aliases следующую строку:
#
user:  user, "|/etc/postfix/script"
# user это имя пользователя (user@mydomen.ru)
# В кавычках прописан путь к скрипту
# user,  это если письмо еще должно попасть в ящик узера
Не забудтье команду newaliases
Если данные пользователей хранятся в мускуле или ldap
то нужно сделать еще несколько других телодвижений.
Сохранение в файл текста можно поручить самому скрипту.
Если скрипт в bash то вначале его вписать примерно такое:
#
mesg=$1
echo $mesg >> /etc/postfix/file
#

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

4. "Postfix. Запуск скрипта при получении письма на ящик."  +/
Сообщение от km_zed email(ok) on 18-Ноя-16, 16:56 
>[оверквотинг удален]
> Самый простой способ:
> добавить в файл aliases следующую строку:
> #
> user:  user, "|/etc/postfix/script"
> # user это имя пользователя (user@mydomen.ru)
> # В кавычках прописан путь к скрипту
> # user,  это если письмо еще должно попасть в ящик узера
> Не забудтье команду newaliases
> Если данные пользователей хранятся в мускуле или ldap
> то нужно сделать еще несколько других телодвижений.

Мускул не используется и хотелось бы обойтись без него.

Получается строка:
   user:  user, "|/etc/postfix/script"
Будет выглядеть:
   user: test@mydomain.ru, "|/etc/postfix/script"?
И если письмо не обязательно должно упасть, то user можно не указывать?
   user:"|/etc/postfix/script"
Правильно понимаю или оба user меняем на test@mydomain.ru?

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

5. "Postfix. Запуск скрипта при получении письма на ящик."  +/
Сообщение от Bootmen (ok) on 18-Ноя-16, 17:02 
>[оверквотинг удален]
>> Если данные пользователей хранятся в мускуле или ldap
>> то нужно сделать еще несколько других телодвижений.
> Мускул не используется и хотелось бы обойтись без него.
> Получается строка:
>    user:  user, "|/etc/postfix/script"
> Будет выглядеть:
>    user: test@mydomain.ru, "|/etc/postfix/script"?
> И если письмо не обязательно должно упасть, то user можно не указывать?
>    user:"|/etc/postfix/script"
> Правильно понимаю или оба user меняем на test@mydomain.ru?

Нет. Надо писать только имя (а не полный адрес)
Для уточнения почитайте man aliases
Повторяюсь: работает только если узеры системные а не лдап и мускуле.


Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

6. "Postfix. Запуск скрипта при получении письма на ящик."  +/
Сообщение от km_zed email(ok) on 18-Ноя-16, 17:07 
>[оверквотинг удален]
>> Получается строка:
>>    user:  user, "|/etc/postfix/script"
>> Будет выглядеть:
>>    user: test@mydomain.ru, "|/etc/postfix/script"?
>> И если письмо не обязательно должно упасть, то user можно не указывать?
>>    user:"|/etc/postfix/script"
>> Правильно понимаю или оба user меняем на test@mydomain.ru?
> Нет. Надо писать только имя (а не полный адрес)
> Для уточнения почитайте man aliases
> Повторяюсь: работает только если узеры системные а не лдап и мускуле.

Я Вас понял, буду пробовать, большое спасибо.

Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

10. "Postfix. Запуск скрипта при получении письма на ящик."  +/
Сообщение от Gglobbus on 21-Ноя-16, 07:41 
Самое простое делать bcc на локльный ящик, все письма будут складываться локально в папку пользователя, а дальше крути скриптом их как хочешь.
Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

11. "Postfix. Запуск скрипта при получении письма на ящик."  +/
Сообщение от Bootmen (ok) on 21-Ноя-16, 08:27 
> Самое простое делать bcc на локльный ящик, все письма будут складываться локально
> в папку пользователя, а дальше крути скриптом их как хочешь.

Через aliases проще.
Скрипт срабатывает сразу. И само сообщение подается ему как аргумент.
После BBC надо мудрить еще через cron запуск скрипта с парсингом майлдир.


Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

13. "Postfix. Запуск скрипта при получении письма на ящик."  +/
Сообщение от km_zed (ok) on 01-Дек-16, 11:43 
>[оверквотинг удален]
> # user,  это если письмо еще должно попасть в ящик узера
> Не забудтье команду newaliases
> Если данные пользователей хранятся в мускуле или ldap
> то нужно сделать еще несколько других телодвижений.
> Сохранение в файл текста можно поручить самому скрипту.
> Если скрипт в bash то вначале его вписать примерно такое:
> #
> mesg=$1
> echo $mesg >> /etc/postfix/file
> #

Ваш совет был очень интересен, но к сожалению не вышло сделать так, postfix постоянно ругался, что нет прав на запуск скрипта, хотя все права раздал. Сделал по другому, все письма, приходящие локальному юзверю складываются в файл /var/spool/mail/*user*. Натравил incron на этот файл и он уже запускает скрипт. Спасибо за совет, возможно он еще пригодится или в свободное время сяду разбираться в чем проблема:)

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

14. "Postfix. Запуск скрипта при получении письма на ящик."  –1 +/
Сообщение от Bootmen (ok) on 01-Дек-16, 16:01 
>[оверквотинг удален]
>> #
>> mesg=$1
>> echo $mesg >> /etc/postfix/file
>> #
> Ваш совет был очень интересен, но к сожалению не вышло сделать так,
> postfix постоянно ругался, что нет прав на запуск скрипта, хотя все
> права раздал. Сделал по другому, все письма, приходящие локальному юзверю складываются
> в файл /var/spool/mail/*user*. Натравил incron на этот файл и он уже
> запускает скрипт. Спасибо за совет, возможно он еще пригодится или в
> свободное время сяду разбираться в чем проблема:)

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

Ответить | Правка | ^ к родителю #13 | Наверх | Cообщить модератору

15. "Postfix. Запуск скрипта при получении письма на ящик."  +/
Сообщение от fantom (??) on 06-Дек-16, 14:58 
>[оверквотинг удален]
>> postfix постоянно ругался, что нет прав на запуск скрипта, хотя все
>> права раздал. Сделал по другому, все письма, приходящие локальному юзверю складываются
>> в файл /var/spool/mail/*user*. Натравил incron на этот файл и он уже
>> запускает скрипт. Спасибо за совет, возможно он еще пригодится или в
>> свободное время сяду разбираться в чем проблема:)
> Да помнится тоже возникали проблемы с правами.
> Иногда смешные. Типа на выполнение скрипта все права нормальные. А на папку
> в которой
> он лежит прав нет. Или на папку куда сохраняются tmp файлы создаваемые
> скриптом.

Ага, или selinux подгадил....

Ответить | Правка | ^ к родителю #14 | Наверх | Cообщить модератору

16. "Postfix. Запуск скрипта при получении письма на ящик."  +/
Сообщение от fevil email(??) on 08-Дек-16, 16:15 
мне кажется тут можно использовать
content_filter либо filter, сейчас точно не вспомню но суть такая что все письма проверяются фильтром на предмет нужного получателя, и в случае совпадения запускает скрипт.
Сейчас пользуюсь exim быстро проверить не могу, но когда-то делал подобное в postfix. Правда я фильтровал по теме письма.


Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

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

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




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

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