Trên hệ điều hành Linux và Unix, bạn có thể sử dụng fetchmail
để thăm dò tài khoản e-mail IMAP của mình và chuyển bất kỳ thư mới nào tới procmail
. Bạn có thể định cấu hình procmail để chạy các tập lệnh dựa trên các mẫu biểu thức thông thường khớp trong các tin nhắn nhận được.
Để làm điều này, bạn sẽ cần cài đặt các gói fetchmail và procmail. Cấu hình sau đây cho phép tôi chạy tập lệnh cho mỗi tin nhắn e-mail mới được nhận trong tài khoản e-mail của mình. Tôi đã sử dụng Ubuntu 12.04 LTS.
Trong ~/.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"
Lưu ý keep
chỉ thị ở trên, đảm bảo rằng các tin nhắn không bị xóa khỏi máy chủ IMAP sau khi chúng được truy xuất.
Trong ~/.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`
Có rất nhiều hướng dẫn trực tuyến cho fetchmail và procmail, và cũng có hướng dẫn về cách tích hợp cả hai (đó là cách tôi nghĩ ra ở trên).
Bây giờ nếu tôi chạy fetchmail
hoặc fetchmail -v
tập lệnh /home/username/myscript.sh
chạy một lần cho mỗi tin nhắn mới. Tôi có thể chạy fetchmail trong một cron hoặc cấu hình fetchmail để chạy như một daemon với lệnh set daemon 600
trong .fetchmailrc
( trong đó 600 là số giây giữa các cuộc thăm dò).