Exim: сохранить почту в уникальный файл

Краткая версия: мне нужно сохранить почту из Exim в сетевой каталог, но в идеале я хочу сохранить их как нестандартные файлы, а не добавлять их в почтовый ящик.

Длинная версия: у меня есть PHP-скрипт, который анализирует почту. В настоящее время он находится в том же ящике, что и почтовый сервер, что позволяет мне направлять почту напрямую в PHP-скрипт — это легко.

Скоро мой почтовый сервер будет размещен на отдельном (подключенном через NFS) сервере. Мой первоначальный план состоял в том, чтобы просто создать символическую ссылку на почтовый ящик и запланировать скрипт для разбора почты через cron, удаляя почту после того, как она была проанализирована.

Проблема в том, что почта хранится в формате mbox, т.е. дописывается в один файл. Поскольку PHP не может надежно использовать блокировки файлов через NFS, я беспокоюсь, что мой сценарий будет уничтожать новую почту, которая поступает во время выполнения.

Итак, вместо того, чтобы записывать почту в один файл, могу ли я заставить Exim сохранять каждую почту в отдельный файл?

Спасибо за любой совет.


person Graham    schedule 25.06.2012    source источник


Ответы (1)


Короче говоря, вы используете use maildir для своих почтовых ящиков вместо mbox.

Ознакомьтесь с этим инструкцией по установке Exim4 и Maildir.

Что-то еще, что вы можете сделать, это использовать расширение PHP IMAP для доступа к вашему локальному почтовому серверу. Таким образом, каждое сообщение будет анализироваться независимо, что позволит вам получить доступ к отдельным файлам без изменения конфигурации вашего почтового сервера.

person Mike Mackintosh    schedule 25.06.2012
comment
Привет. Я видел Maildir в качестве альтернативы, но надеялся, что смогу сделать что-то подобное только для одного почтового ящика. Я приму ваше решение, так как в целом оно, вероятно, правильное (хотя я могу просто передать ввод в Perl и сохранить таким образом отдельные файлы). Спасибо! - person Graham; 25.06.2012