Czy istnieje sposób filtrowania wiadomości e-mail na zdalnym koncie IMAP?


9

Sytuacja: serwer pocztowy z dostępem tylko do IMAP. Problem: Chcę mieć możliwość filtrowania wiadomości e-mail (umieszczaj niektóre wiadomości w różnych folderach, oznaczaj je jako przeczytane itd.).

Większość nowych klientów e-mail ma taką możliwość, ale chcę mieć niezależny program do filtrowania, ponieważ muszę używać różnych klientów e-mail, aby połączyć się z tym serwerem.

Ogólnie rzecz biorąc - coś w rodzaju procmaila, ale działa w oparciu o IMAP.

Oprogramowanie będzie działać w systemie Linux lub Solaris.


Odpowiedzi:


8

Szybkie google wyświetla IMAPFilter, który wygląda tak, jak robi, co chcesz:

  • Wyszukiwanie wiadomości przy użyciu wielu dostępnych kryteriów w protokole IMAP, takich jak:
    • Status (ostatni, nieprzeczytany itp.) Wiadomości.
    • Rozmiar wiadomości.
    • Wiek wiadomości.
    • Dopasowywanie łańcucha lub wzorca wyrażenia regularnego w nagłówkach lub treści wiadomości.
  • Możliwość korzystania z operatorów logicznych (i / lub / nie) podczas wyszukiwania wiadomości.
  • Różne możliwości przetwarzania komunikatów, w tym:
    • Usuwanie wiadomości
    • Przenoszenie wiadomości do skrzynki pocztowej na tym samym lub różnych serwerach
    • Kopiowanie wiadomości do skrzynki pocztowej na tym samym lub różnych serwerach.
    • Oznaczanie wiadomości lub zmiana flag wiadomości.
  • Lista dostępnych i / lub subskrybowanych skrzynek pocztowych wraz z obsługą rozszerzenia IMAP CHILDREN.
  • Tworzenie, usuwanie, zmiana nazwy, subskrybowanie lub rezygnacja z subskrypcji skrzynek pocztowych
  • Obsługa internacjonalizacji (I18N).
  • Obsługa przestrzeni nazw serwera przy użyciu rozszerzenia IMAP NAMESPACE.
  • Bezpieczne połączenia szyfrowane imaps (port 993) Secure Socket Layer (SSL) lub Transport Layer Security (TLS).
  • Szyfrowane połączenia przy użyciu rozszerzenia IMAP STARTTLS.
  • Uwierzytelnianie użytkownika za pomocą mechanizmu uwierzytelniania Challenge-Response (CRAM), w szczególności CRAM-MD5.
  • Obsługa wyrażeń regularnych zgodnych z Perlem (PCRE).

1

W zależności od serwera IMAP możesz po prostu użyć implementacji sita . Myślę, że najlepsze wsparcie dla sita zapewnia cyrus.


Cóż - rozwiązanie, którego szukam, nie może w żaden sposób zależeć od serwera. Muszę założyć, że serwer to tylko głupi IMAP, bez wsparcia dla niczego inteligentnego.

1

Jak już wspomniałeś, procmail to właściwy sposób, aby to zrobić, więc możesz zapytać swojego dostawcę poczty e-mail, czy obsługuje go na wszelki wypadek - nie zaszkodzi.

W przeciwnym razie być może najłatwiejszym sposobem jest zawsze otwieranie klienta poczty e-mail, który dokonuje sortowania itp. Były problemy z blokowaniem wielu klientów uzyskujących dostęp do tej samej skrzynki pocztowej IMAP, ale nie widziałem ich od lat.


To nie jest odpowiedź. Filtrowanie musi odbywać się na serwerze IMAP, nad którym nie masz kontroli.
reinierpost

1

Aby uzyskać lekkość, możesz spróbować Sift .


szkoda, że ​​nie próbowałem tego przed imapfilter.
Joshua K

To wydaje się być porzucone i nieobsługiwane, w przeciwieństwie do imapfilter. Popraw mnie, jeśli się mylę.
selurvedu


0

W systemach operacyjnych Linux i Unix można użyć fetchmaildo odpytania konta e-mail IMAP i przekazywania nowych wiadomości procmail. Możesz skonfigurować procmail, aby uruchamiał skrypty na podstawie dopasowań wzorca wyrażeń regularnych w otrzymanych wiadomościach.

Aby to zrobić, musisz zainstalować pakiety fetchmail i procmail. Poniższa konfiguracja pozwoliła mi uruchomić skrypt dla każdej nowej wiadomości e-mail otrzymanej na moim koncie e-mail. Użyłem Ubuntu 12.04 LTS.

W ~/.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"

Zwróć uwagę na keeppowyższą dyrektywę, która gwarantuje, że wiadomości nie zostaną usunięte z serwera IMAP po ich pobraniu.

W ~/.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`

Istnieje wiele samouczków online dotyczących fetchmaila i procmaila, a także samouczki dotyczące ich integracji (tak wymyśliłem powyższe).

Teraz jeśli uruchomię fetchmaillub fetchmail -vskrypt /home/username/myscript.shuruchomi się raz dla każdej nowej wiadomości. Mogę uruchomić fetchmail w cronie lub skonfigurować fetchmail, aby działał jako demon z set daemon 600dyrektywą w .fetchmailrc(gdzie 600 to liczba sekund między odpytywaniami).


To nie jest odpowiedź. Filtrowanie musi nastąpić na serwerze IMAP.
reinierpost
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.