Настройка почтового сервера только для приема и обработки входящих сообщений и вложений

Я хотел бы создать следующий сценарий на моем сервере Ubuntu 14.04:

  • настроить почтовый сервер (или он называется «Агент передачи почты»?), который должен заботиться только о получении писем. Нет необходимости настраивать отправку писем с этого сервера.
  • выполнить базовую фильтрацию входящих писем (проверьте, имеет ли почта соответствующее вложение – именно файл с определенным расширением)
  • сохранять вложения только в определенной папке
  • удалить обработанные сообщения (ы)

Я почти ничего не знаю о почтовых серверах, и я попытался немного поиграть с Postfix но если я правильно понял, есть несколько лучших решений для фильтрации и обработки почты? Я знаю Python и PHP поэтому я могу обрабатывать фильтрацию / обработку на одном из этих языков, но до сих пор не знаю, с чего именно начать.
Я бы предпочел обрабатывать входящую почту сразу после получения, если это возможно, вместо выполнения задания cron на каком-то скрипте Python и удалить обработанное сообщение сразу после сохранения вложения.
В этот конкретный момент мне не нужно настраивать защиту или защиту от нежелательной почты / вируса.

Поскольку я немного запутался в том, как настроить этот рабочий процесс, я хотел бы попросить хотя бы отправную точку для каждого шага, а также ссылки для дальнейшего чтения – это больше, чем приветствуется! Я не требую полного решения, но некоторые советы о пакетах, которые могут быть полезны в этом сценарии, действительно оценены.

One Solution collect form web for “Настройка почтового сервера только для приема и обработки входящих сообщений и вложений”

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

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

Затем вы можете забрать почту, используя fetchmail или аналогичную программу, которая говорит о вашем локальном postfix только слушая локальные подключения. (если ваш сервер имеет фиксированный IP-адрес и может обрабатывать внешние соединения stmp, вы можете пропустить этот шаг и выполнять только остальные).

postfix должен быть настроен на использование procmail качестве вашей команды почтового ящика (в main.cf :

 mailbox_command = procmail -a "$EXTENSION" 

fetchmail должен запускаться как обычный (я проверяю каждую минуту с моим поставщиком) работу cron для некоторого пользователя, который выполняет обработку. Этот пользователь должен иметь файл ~/.procmailrc который может выполнять некоторую фильтрацию и передавать электронную почту скрипту, используя запись типа:

 :0 $ ^Subject:.*some_text_that_has_to_be_in_the_subject_to_be_valid_for_processing | /usr/local/bin/your_program 

Теперь your_program должна иметь возможность обрабатывать формат файла (заголовок, за которым следует тело). Я использую python и его стандартный модуль email для обработки сложностей вложений MIME.

Подсказка: your_program сохраните входящие данные (на sys.stdin ) sys.stdin в каком-либо файле xyz во время разработки, так что вы можете посмотреть на это и развить это без изменений (просто запустив your_command < xyz ), чтобы вам не пришлось проходить через хлопот отправки электронных писем с вложениями для проверки этого этапа процесса.

  • Установка Pagespeed + Nginx из источника не выполняется
  • Строка Grep с определенным словом из файла в определенном столбце
  • Ошибка после установки: нет такого устройства. спасение грибов
  • Как переключаться между рабочими пространствами в ubuntu
  • Как найти IP-адрес виртуальной машины KVM, чтобы я мог использовать SSH?
  • Что мешает Firefox открывать веб-сайты?
  • Как заменить (беззнаковый) загрузчик в Debian на один из Ubuntu, чтобы сделать его загрузочным устройством с защищенной загрузкой?
  • Открывающая крышка выводится на черный экран (ноутбук Dell с графикой ATI, ядром Ubuntu 12.04, 3.2, GNOME 3)
  • Изменение разрешений для файлов, созданных службой демона докеров
  • Ubuntu 14.04 - Несколько ручек Powermate для технологии Griffin
  • Поддержка rsyslog и netsnmp для пространств имен Linux
  • Interesting Posts

    монтировать ecryptfs без sudo

    Цветное слово-diff, как git's?

    Не удается запустить Tomcat на Ubuntu

    Есть ли способ создать журнал сборки при запуске «make»?

    Ошибка компиляции ядра Linux 2.6.38

    Выполнение сценария оболочки на нескольких серверах

    Будут ли поддерживаться символические ссылки, если путь цели остается тем же, но все передается на новый диск?

    Как заставить команду sed искать только полные слова?

    rsync -delete-excluded с -prune-empty-dirs, но только обрезанные исключенные каталоги

    Можно ли разрешить выполнение файлов из cifs mount в bash?

    Объединение двух таблиц, включая многократное появление идентификаторов столбцов и уникальных строк

    bash alias переименовать функцию с аргументами

    Прочитайте файлы в подкаталогах и перейдите в одно место с меткой времени

    Настройка точки доступа для отображения всплывающей / пассивной страницы

    Как перенаправить tty1 в оболочку Konsole X11 (KDE)?

    Linux и Unix - лучшая ОС в мире.