Мне нужно настроить почтовый сервер, который имеет следующие функции: если пользователь отправляет электронное письмо на определенный адрес на этом сервере, сервер должен сначала проверить, есть ли в письме PDF-вложение, выполнить некоторую обработку этого PDF-файла, а затем ответить в исходное письмо пользователя с прикрепленным новым файлом PDF.
У меня вопрос: как можно реализовать эту функцию и какое программное обеспечение / почтовый сервер вы порекомендуете?
Я думаю, что это можно решить следующим образом: когда сервер получает новое электронное письмо, он выполняет внешний скрипт Python, который проверяет вложение, обрабатывает файл PDF и затем отправляет его обратно в почтовый ящик пользователя. Какой почтовый сервер сможет это сделать и какие конфигурации для этого нужны?
У Кристиана это есть, но более простой вариант - просто добавить строку в /etc/aliases/
лайк:
pdf-user "|/usr/local/bin/script-that-does-pdf-stuff"
Затем ваш сценарий просто читает электронное письмо из стандартного in, затем обрабатывает его и отправляет через sendmail
.
Эта функция должна работать на большинстве MTA * nix, хотя postifx и exim - два разумных варианта.
Если вы используете Postfix, вы можете установить mailbox_command возможность запускать ваш скрипт Python для каждого сообщения, но я думаю, у вас будет много возможностей для реализации.
Другое решение - использовать procmail для локальной доставки и настройте его для отправки (по конвейеру) сообщений в ваш скрипт Python. это пример автоответчика может вам помочь. Преимущество этого решения в том, что ваш сценарий может быть проще. Нет необходимости быть местным агентом доставки.