원격 IMAP 계정에서 메일을 필터링하는 방법이 있습니까?


9

상황 : IMAP 전용 액세스 권한이있는 메일 서버. 문제 : 메일을 필터링 할 수 있기를 원합니다 (일부 메일을 다양한 폴더에 넣고 읽은 것으로 표시).

대부분의 새 전자 메일 클라이언트에는이 기능이 있지만 다양한 전자 메일 클라이언트를 사용하여이 서버에 연결해야하므로 독립형 필터링 프로그램이 필요합니다.

일반적으로 procmail과 비슷하지만 IMAP에서 작동합니다.

소프트웨어는 Linux 또는 Solaris에서 실행됩니다.


답변:


8

빠른 구글은 당신이 원하는 것처럼 보이는 IMAPFilter 를 던집니다 :

  • 다음과 같은 IMAP 프로토콜에서 사용 가능한 많은 기준을 사용하여 메시지 검색 :
    • 메시지의 상태 (최근, 읽지 않은 등)
    • 메시지의 크기
    • 메시지의 나이.
    • 헤더 또는 메시지 본문에서 문자열 또는 정규식 패턴 일치
  • 메시지를 검색하는 동안 논리 연산자를 사용할 수 있습니다.
  • 메시지 처리에 사용할 수있는 다양한 기능 :
    • 메시지 삭제
    • 동일하거나 다른 서버의 사서함으로 메시지 이동
    • 동일하거나 다른 서버의 사서함으로 메시지 복사
    • 메시지 표시 또는 메시지 플래그 변경
  • 사용 가능한 및 / 또는 가입 된 사서함 및 IMAP CHILDREN 확장에 대한 지원 목록.
  • 사서함 만들기, 삭제, 이름 바꾸기, 가입 또는 가입 취소
  • 국제화 (I18N) 지원
  • IMAP NAMESPACE 확장을 사용한 서버 네임 스페이스 지원
  • SSL (Secure Socket Layer) 또는 TLS (Transport Layer Security) 암호화 된 imap (포트 993) 연결.
  • IMAP STARTTLS 확장을 사용하여 암호화 된 연결.
  • CRAM (Challenge-Response Authentication Mechanism), 특히 CRAM-MD5를 사용한 사용자 인증
  • PCRE (Perl Compatible Regular Expressions) 지원

1

IMAP 서버에 따라 일부 sieve 구현을 간단히 사용할 수 있습니다 . 나는 체에 대한 최고의 지원이 사이러스에 의해 제공된다고 생각합니다.


글쎄-내가 찾고있는 솔루션은 서버에 어떤 식 으로든 의존 할 수 없습니다. 나는 서버가 똑똑한 아무것도 지원하지 않는 바보 같은 IMAP이라고 가정해야합니다.

1

이미 언급했듯이 procmail이 올바른 방법이므로 이메일 제공 업체에 문의하여 도움을 줄 수 있습니다.

그렇지 않으면 가장 쉬운 방법은 정렬 등을 수행하는 전자 메일 클라이언트를 항상 여는 것입니다. 동일한 IMAP 사서함에 액세스하는 여러 클라이언트에서 잠금 문제가 있었지만 몇 년 동안 보지 못했습니다.


이것은 답이 아닙니다. 필터링 할 수없는 IMAP 서버에서 필터링이 수행되어야합니다.
reinierpost

1

가벼움을 위해 Sift 를 사용해보십시오.


나는 imapfilter 전에 이것을 시도했으면 좋겠다.
Joshua K

이것은 imapfilter와 달리 포기되고 유지되지 않는 것 같습니다. 틀 렸으면 말해줘.
selurvedu


0

Linux 및 Unix 운영 체제에서 fetchmailIMAP 이메일 계정을 폴링하고 새 메시지를 (으)로 전달하는 데 사용할 수 procmail있습니다. 수신 된 메시지에서 정규식 패턴 일치를 기반으로 스크립트를 실행하도록 procmail을 구성 할 수 있습니다.

이를 위해서는 fetchmail 및 procmail 패키지를 설치해야합니다. 다음 구성을 통해 모든 새 전자 메일 메시지가 전자 메일 계정으로 수신 될 때마다 스크립트를 실행할 수있었습니다. 우분투 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하거나 실행합니다. cron에서 fetchmail을 실행하거나 지시문을 사용하여 데몬으로 실행되도록 fetchmail을 구성 할 수 있습니다 (여기서 600은 폴링 간격 (초)입니다).fetchmail -v/home/username/myscript.shset daemon 600.fetchmailrc


이것은 답이 아닙니다. 필터링은 IMAP 서버에서 발생해야합니다.
reinierpost
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.