มีวิธีกรองอีเมลในบัญชี IMAP ระยะไกลหรือไม่


9

สถานการณ์: เมลเซิร์ฟเวอร์ที่เข้าถึง IMAP เท่านั้น ปัญหา: ฉันต้องการให้สามารถกรองอีเมล (ใส่จดหมายบางส่วนไปยังโฟลเดอร์ต่าง ๆ ทำเครื่องหมายว่าอ่านแล้วเป็นต้น)

ไคลเอนต์อีเมลใหม่ส่วนใหญ่มีความสามารถนี้ แต่ฉันต้องการโปรแกรมการกรองแบบสแตนด์อโลนเนื่องจากฉันต้องใช้ไคลเอนต์อีเมลต่าง ๆ เพื่อเชื่อมต่อกับเซิร์ฟเวอร์นี้

โดยทั่วไป - บางอย่างเช่น procmail แต่ทำงานผ่าน IMAP

ซอฟต์แวร์จะทำงานบน Linux หรือ Solaris


คำตอบ:


8

Google ด่วนเปิดตัวIMAPFilterซึ่งดูเหมือนจะเป็นสิ่งที่คุณต้องการ:

  • การค้นหาข้อความโดยใช้เกณฑ์ที่มีอยู่มากมายในโปรโตคอล IMAP เช่น:
    • สถานะ (ล่าสุด, ยังไม่ได้อ่าน, ฯลฯ ) ของข้อความ
    • ขนาดของข้อความ
    • อายุของข้อความ
    • การจับคู่ของสตริงหรือรูปแบบการแสดงออกปกติในส่วนหัวหรือเนื้อความของข้อความ
  • ความสามารถในการใช้ตัวดำเนินการเชิงตรรกะ (และ / หรือ / ไม่) ในขณะที่ค้นหาข้อความ
  • ความสามารถที่แตกต่างกันในการประมวลผลข้อความรวมถึง:
    • กำลังลบข้อความ
    • การย้ายข้อความไปยังกล่องจดหมายในเซิร์ฟเวอร์เดียวกันหรือต่างกัน
    • คัดลอกข้อความไปยังกล่องจดหมายในเซิร์ฟเวอร์เดียวกันหรือต่างกัน
    • การทำเครื่องหมายข้อความหรือเปลี่ยนสถานะข้อความ
  • รายการของกล่องจดหมายที่มีและ / หรือสมัครรับข้อมูลพร้อมด้วยการสนับสนุนส่วนขยาย IMAP เด็ก
  • การสร้างการลบการเปลี่ยนชื่อการสมัครหรือการยกเลิกกล่องจดหมาย
  • รองรับความเป็นสากล (I18N)
  • การรองรับเนมสเปซเซิร์ฟเวอร์โดยใช้ส่วนขยาย IMAP NAMESPACE
  • การเชื่อมต่อ imaps แบบเข้ารหัส Secure Socket Layer (SSL) หรือ Transport Layer Security (TLS) (พอร์ต 993)
  • การเชื่อมต่อที่เข้ารหัสโดยใช้ส่วนขยาย IMAP STARTTLS
  • การพิสูจน์ตัวตนผู้ใช้ด้วยกลไกการพิสูจน์ตัวตน Challenge-Response Authentication (CRAM) โดยเฉพาะ CRAM-MD5
  • การสนับสนุน Perl Express Regular Expressions (PCRE)

1

ขึ้นอยู่กับเซิร์ฟเวอร์ IMAP ของคุณคุณสามารถใช้การปรับขนาดของตะแกรงได้ ฉันคิดว่าไซรัสให้การสนับสนุนที่ดีที่สุด


ดี - ฉันกำลังมองหาวิธีแก้ปัญหาไม่สามารถขึ้นอยู่กับเซิร์ฟเวอร์ ฉันต้องสมมติว่าเซิร์ฟเวอร์เป็นเพียง IMAP ที่ไม่มีการสนับสนุนไม่มีอะไรที่ชาญฉลาด

1

ตามที่คุณกล่าวไว้แล้ว procmail เป็นวิธีที่ถูกต้องในการทำเช่นนี้ดังนั้นคุณสามารถถามผู้ให้บริการอีเมลของคุณว่าพวกเขาสนับสนุนในกรณีที่ไม่ได้รับบาดเจ็บ

มิฉะนั้นบางทีวิธีที่ง่ายที่สุดคือให้ไคลเอนต์อีเมลเปิดอยู่เสมอซึ่งการเรียงลำดับเป็นต้นเคยมีปัญหาในการล็อคกับไคลเอนต์หลายรายที่เข้าถึงกล่องจดหมาย IMAP เดียวกัน แต่ฉันไม่เคยเห็นในช่วงหลายปีที่ผ่านมา


นี่ไม่ใช่คำตอบ การกรองต้องเกิดขึ้นบนเซิร์ฟเวอร์ IMAP ซึ่งคุณไม่สามารถควบคุมได้
reinierpost

1

สำหรับความบางเบาคุณสามารถลองSiftได้


ฉันหวังว่าฉันได้ลองสิ่งนี้มาก่อน imapfilter
Joshua K

สิ่งนี้ดูเหมือนว่าจะถูกทอดทิ้งและไม่ใช้สีเหมือน imapfilter ช่วยแก้ให้ด้วยนะถ้าฉันผิด.
selurvedu

1

อีกวิธีหนึ่งคือการใช้ตัวกรองทับทิมอัญมณี 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 มากนัก ผู้เขียนสัญญาว่าจะให้ตัวอย่างเพิ่มเติมในอนาคตอันใกล้นี้และเปิดให้แสดงคำขอและดึงคำขอ


0

บน 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 ให้ทำงานเป็น daemon ที่มีset daemon 600คำสั่งใน.fetchmailrc(โดยที่ 600 คือจำนวนวินาทีระหว่างโพล)


นี่ไม่ใช่คำตอบ การกรองต้องเกิดขึ้นบนเซิร์ฟเวอร์ IMAP
reinierpost
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.