
CentOS 5.x | Отправить почту
Привет, ребята,
Есть ли простой способ извлечь отдельные сообщения из /var/spool/mail/? У меня есть идея очень простого скрипта, и я хотел бы проверить каждое отдельное сообщение на что-то.
Сценарий будет таким:
1) новое письмо приходит в папку «Входящие». 2) Скрипт проверяет наличие определенной строки. 3) Если строка найдена, скрипт извлекает различную информацию заголовка и отправляет данные письма по адресу.
Я понимаю, что milter, вероятно, был бы правильным решением, но я надеялся найти способ сделать это с помощью скрипта оболочки, поскольку я хочу попрактиковаться в этом. Проблема в том, что я не могу найти способ разобрать или иным образом изолировать отдельные сообщения. Когда я просматриваю /var/spool/mail/, я вижу большой файл с несколькими сообщениями и без уникального разделителя между сообщениями.
решение1
Если игнорировать простые скрипты оболочки, то почти каждый язык программирования имеет библиотеку для анализамбоксотформатированный почтовый ящик.
- http://docs.python.org/library/mailbox.html
- http://search.cpan.org/~dcoppit/Mail-Mbox-MessageParser-1.5002/lib/Mail/Mbox/MessageParser/Perl.pm
- http://www.phpclasses.org/browse/file/3127.html
Конечно, если вы посмотрите вокруг, вы также сможете найти множество клиентских библиотек POP3 и IMAP.
Вы также должны уметь использовать что-то вродепрокмейлилипочтовая рассылкадля фильтрации сообщений.
решение2
Классически вы бы делали такие вещи, когда почта получена, используя MDA, такой как procmail. Если у вас уже есть почтовый ящик, procmail поставляется с formail
(1), который позволяет вам запускать программу для каждого письма в почтовом ящике и имеет возможности для фильтрации и перезаписи заголовков.