| Introduction |
| ------------------------------------------------------------ |
| |
| This extension for efind provides functions to filter |
| emails. It can read messages from plain text and mailbox |
| files. This makes it possible to search emails stored in a |
| Maildir folder, for example. |
| |
| Date strings have to be in the format "yyyy-MM-dd HH:mm:ss". |
| The accuracy depends on the number of specified fields. Any |
| field (expect the year) is optional. |
| |
| |
| Available functions |
| ------------------------------------------------------------ |
| |
| mail_check_header(string: key, string: value) |
| --------------------------------------------- |
| |
| Tests if the header key of at least one found message |
| contains the string value. The string comparison is case |
| insensitive. |
| |
| $ efind . 'mail_check_header("X-Original-To", "john.doe@example.org")' |
| |
| |
| mail_has_header(string: key) |
| ---------------------------- |
| |
| Tests if the header key is set in at least one found |
| message. |
| |
| $ efind . 'mail_has_header("X-Virus-Scanned")' |
| |
| |
| mail_contains(string: text) |
| --------------------------- |
| |
| Tests if the body of at least one found message contains |
| text. |
| |
| $ efind . 'mail_contains("foobar")' |
| |
| |
| mail_find_attachment(string: name) |
| ---------------------------------- |
| |
| Tests if a filename containing name is attached to a at |
| least one found message. The string comparison is case |
| insensitive. |
| |
| $ efind . 'mail_find_attachment("invoice.pdf")' |
| |
| |
| mail_has_attachment() |
| --------------------- |
| |
| Tests if at least one file is attached to a found message. |
| |
| $ efind . 'mail_has_attachment()' |
| |
| |
| mail_date_equals(string: key, string: date) |
| ------------------------------------------- |
| |
| Converts the header key to date and compares it to date. |
| |
| $ efind . 'mail_date_equals("Date", "2017-07-11 18:11:40")' |
| |
| |
| mail_date_before(string: key, string: date) |
| ------------------------------------------- |
| Tests if the date found in the header key is greater than |
| date. |
| |
| $ efind . 'mail_date_before("Date", "2017-07")' |
| |
| |
| mail_date_after(string: key, string: date) |
| ------------------------------------------ |
| |
| Tests if date is greater than the date found in the header |
| key. |
| |
| $ efind . 'mail_date_after("Date", "2017-07-01 11:39")' |
| |
| |
| mail_from(string: sender) |
| ------------------------- |
| |
| Tests if the sender of a found message contains sender. The |
| string comparison is case insensitive. |
| |
| $ efind . 'mail_from("Alice") or mail_from("Bob")' |
| |
| |
| mail_to(string: receiver) |
| ------------------------- |
| |
| Tests if the receiver of a found message contains receiver. |
| The string comparison is case insensitive. |
| |
| $ efind . 'mail_from("Bob") and mail_to("Alice")' |
| |
| |
| mail_subject(string: subject) |
| ----------------------------- |
| |
| Tests if the subject of a found message contains subject. |
| The string comparison is case insensitive. |
| |
| $ efind . 'mail_from("@acme.org") and mail_subject("invoice")' |
| |
| |
| mail_sent(string: date) |
| ----------------------- |
| |
| Tests if at least one found message has been sent on date. |
| |
| $ efind . 'mail_sent("2017") |
| |
| |
| mail_sent_before(string: date) |
| ------------------------------ |
| |
| Tests if at least one found message has been sent before |
| date. |
| |
| $ efind . 'mail_sent_before("2017-01-01") |
| |
| |
| mail_sent_after(string: date) |
| ----------------------------- |
| |
| Tests if at least one found message has been sent after |
| date. |
| |
| $ efind . 'mail_sent_after("2017-01-01 10:36") |
| |
| |
| Installation |
| ------------------------------------------------------------ |
| |
| Copy the Python script to ~/.efind/extensions or run the |
| install.sh shell script. |
| |
| |
| Links |
| ------------------------------------------------------------ |
| master.zip |
| GitHub |