Парсинг писем, как только они получены - PullRequest
0 голосов
/ 25 декабря 2010

У меня есть пользователи, отправляющие электронные письма с текстом, который мне нужно извлечь. Электронная почта каждого пользователя сопоставляется с одним почтовым ящиком. В настоящее время я использую задание cron, которое опрашивает почтовый ящик (postfix) каждые 5 минут, проверяет наличие новых сообщений и отправляет их в очередь, где мои работники анализируют их. У меня есть два основных вопроса:

  1. Есть ли способ проанализировать письмо, как только оно получено, вместо опросить сервер? Кроме того, как мог Я реализую это, чтобы быть масштабируемым? За Например, если есть 50 входящих сообщений в секунду.
  2. Я программно пишу адрес электронной почты каждого пользователя, чтобы он указывал на почтовый ящик в файле конфигурации postfix. Будет ли лучше создать учетную запись «поймать всех», чтобы мне не приходилось писать каждый адрес электронной почты? Однако я знаю, что все учетные записи более подвержены спаму.

Ответы [ 3 ]

2 голосов
/ 25 декабря 2010

Используйте псевдоним канала , чтобы перехватить письмо, затем используйте сельдерей, чтобы выбросить его в MQ для обработки.

1 голос
/ 25 декабря 2010

Да, это можно сделать довольно легко. Все, что вам нужно сделать, это настроить postfix для пересылки электронной почты в сценарий, а не в почтовый ящик. Это на самом деле не должно быть всеобъемлющим, вы можете настроить postfix для пересылки определенных писем в скрипт. Сценарий может быть написан на любом языке. Я написал такой скрипт в php пару раз. Еще одна возможность для очень загруженного сервера, например, 50 электронных писем в секунду, - это написать свой собственный сервер фильтра, а затем настроить постфикс для передачи каждого сообщения в ваш фильтр.

Чтобы переслать письмо в скрипт, в файле aliases вставьте строку, подобную этой: путь должен указывать на этот файл

someaccount |/usr/local/bin/emailParser.php

Чтобы пересылать электронные письма на фильтр, его необходимо настроить в master.cf, что немного сложнее.

0 голосов
/ 25 декабря 2010
  1. Я бы порекомендовал использовать Procmail для этого.Он специально предназначен для обработки входящей почты, и вы можете передавать всю почту с определенным свойством в ваше приложение.

    http://www.procmail.org/

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

...