Существует ли способ отфильтровать письма в удаленной учетной записи IMAP?

Легкий? дешевый? не действительно, но определенно возможный. Так как Вы не идете для бюджетного решения (это - шесть чисел только для металла), Вы, вероятно, хотели бы использовать поддержку со стороны заплаченного, предприятия, ОС.

9
задан 24 July 2009 в 14:20
6 ответов

Быстрый Google подбрасывает IMAPFilter, который похож на него, делает то, что Вы хотите:

  • Ища сообщений с помощью многих доступных критериев в протоколе протокола IMAP, таких как:
    • Состояние (недавний, непрочитанный, и т.д.) сообщения.
    • Размер сообщения.
    • Возраст сообщения.
    • Соответствие строки или образца регулярного выражения в заголовках или теле сообщения.
  • Способность использовать логические операторы (and/or/not) при поиске сообщений.
  • Различные возможности, доступные для обработки сообщений, включая:
    • Удаление сообщений.
    • Перемещение сообщений к почтовому ящику в тех же или различных серверах
    • Копирование сообщений к почтовому ящику в тех же или различных серверах.
    • Отмечание сообщений или изменение флажков сообщений.
  • Список доступных и/или подписанных почтовых ящиков, наряду с поддержкой ДОЧЕРНЕГО расширения IMAP.
  • Создание, удаляя, переименовывая, подписываясь или отказываясь от подписки почтовые ящики
  • Интернационализация (I18N) поддержка.
  • Поддержка пространства имен сервера с помощью расширения ПРОСТРАНСТВА ИМЕН IMAP.
  • Уровень защищенных сокетов (SSL) или Безопасность транспортного уровня (TLS) зашифровали imaps (порт 993) соединения.
  • Зашифрованные соединения с помощью расширения STARTTLS IMAP.
  • Аутентификация пользователя с Механизмом аутентификации типа "запрос-ответ" (CRAM), конкретно CRAM-MD5.
  • Поддержка Perl совместимых регулярных выражений (PCRE).
8
ответ дан 2 December 2019 в 22:30

В зависимости от Вашего сервера IMAP Вы могли просто использовать некоторую реализацию решета. Я думаю, что лучшая поддержка решета оказывается cyrus.

1
ответ дан 2 December 2019 в 22:30
  • 1
    Хорошо - решение i' m поиск не может зависеть всегда от сервера. Я должен предположить, что сервером является просто немой IMAP без поддержки ничему умному. –   24 July 2009 в 14:33

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

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

1
ответ дан 2 December 2019 в 22:30

Для чистой легкости Вы могли дать, Отсеивают попытку.

1
ответ дан 2 December 2019 в 22:30

В операционных системах Linux и Unix вы можете использовать fetchmail для опроса вашей учетной записи электронной почты IMAP и передачи любых новых сообщений на procmail . Вы можете настроить procmail для запуска сценариев на основе совпадений шаблонов регулярных выражений в полученных сообщениях.

Для этого вам необходимо установить пакеты fetchmail и procmail. Следующая конфигурация позволила мне запускать сценарий для каждого нового сообщения электронной почты, полученного в мою учетную запись электронной почты. Я использовал Ubuntu 12.04 LTS.

В ~ / .fetchmailrc :

# .fetchmailrc checks my e-mail account for new messages, sends them to procmail

set logfile /home/myusername/fetchmail.log

poll mail.domain.com protocol IMAP
    user "emailaccountname"
    password 'emailpassword'
    folder 'INBOX'
    keep
    ssl
    mda "/usr/bin/procmail -f %F"

Обратите внимание на указанную выше директиву keep , которая гарантирует, что сообщения не удаляются с сервера IMAP после того, как они ' повторно получено.

В ~ / .procmailrc :

# .procmailrc received e-mails from fetchmail and runs a script
PATH=/usr/bin:/usr/local/bin
LOGFILE=/home/username/procmail.log
SHELL=/bin/sh

# This rule triggers for every e-mail message:
:0
| `/home/username/myscript.sh`

В Интернете есть множество руководств по fetchmail и procmail, а также руководства по их интеграции (именно так я придумал вышеупомянутое).

Теперь, если я запускаю fetchmail или fetchmail -v скрипт / home / username / myscript.sh запускается один раз для каждого нового сообщения. Я могу запустить fetchmail в cron или настроить fetchmail для работы в качестве демона с помощью директивы set daemon 600 в .fetchmailrc (где 600 - количество секунд между опросами).

0
ответ дан 2 December 2019 в 22:30

Еще один способ - использовать imap-фильтр рубинового камня.

https://github.com/flajann2/imap-filter/blob/master/README.org

И пример DSL,

https://github.com/flajann2/imap-filter/ blob / master / examples / default.imap

DSL основан на Ruby, но вам не нужно много знать Ruby, чтобы использовать его. Автор обещает предоставить больше примеров в ближайшем будущем и открыт для запросов функций и запросов на вытягивание.

1
ответ дан 2 December 2019 в 22:30

Теги

Похожие вопросы