diff options
Diffstat (limited to 'mail/filtertypes.xml')
-rw-r--r-- | mail/filtertypes.xml | 746 |
1 files changed, 746 insertions, 0 deletions
diff --git a/mail/filtertypes.xml b/mail/filtertypes.xml new file mode 100644 index 0000000000..dffa4e965f --- /dev/null +++ b/mail/filtertypes.xml @@ -0,0 +1,746 @@ +<?xml version="1.0"?> +<filterdescription> +<partset> + <part name="sender"> + <title>Sender</title> + <input type="optionlist" name="sender-type"> + <option value="contains"> + <title>contains</title> + <code> + (match-all (header-contains "From" ${sender})) + </code> + </option> + <option value="not contains"> + <title>does not contain</title> + <code> + (match-all (not (header-contains "From" ${sender}))) + </code> + </option> + <option value="is"> + <title>is</title> + <code> + (match-all (header-matches "From" ${sender})) + </code> + </option> + <option value="is not"> + <title>is not</title> + <code> + (match-all (not (header-matches "From" ${sender}))) + </code> + </option> + <option value="starts with"> + <title>starts with</title> + <code> + (match-all (header-starts-with "From" ${sender})) + </code> + </option> + <option value="not starts with"> + <title>does not start with</title> + <code> + (match-all (not (header-starts-with "From" ${sender}))) + </code> + </option> + <option value="ends with"> + <title>ends with</title> + <code> + (match-all (header-ends-with "From" ${sender})) + </code> + </option> + <option value="not ends with"> + <title>does not end with</title> + <code> + (match-all (not (header-ends-with "From" ${sender}))) + </code> + </option> + <option value="matches soundex"> + <title>sounds like</title> + <code> + (match-all (header-soundex "From" ${sender})) + </code> + </option> + <option value="not match soundex"> + <title>does not sound like</title> + <code> + (match-all (not (header-soundex "From" ${sender}))) + </code> + </option> + </input> + <input type="string" name="sender"/> + </part> + + <part name="to"> + <title>Recipients</title> + <input type="optionlist" name="recipient-type"> + <option value="contains"> + <title>contains</title> + <code> + (match-all (or (header-contains "To" ${recipient}) + (header-contains "Cc" ${recipient}))) + </code> + </option> + <option value="not contains"> + <title>does not contain</title> + <code> + (match-all (not (or + (header-contains "To" ${recipient}) + (header-contains "Cc" ${recipient})))) + </code> + </option> + <option value="is"> + <title>is</title> + <code> + (match-all (or (header-matches "To" ${recipient}) + (header-matches "Cc" ${recipient}))) + </code> + </option> + <option value="is not"> + <title>is not</title> + <code> + (match-all (not (or + (header-matches "To" ${recipient}) + (header-matches "Cc" ${recipient})))) + </code> + </option> + <option value="starts with"> + <title>starts with</title> + <code> + (match-all (or (header-starts-with "To" ${recipient}) + (header-starts-with "Cc" ${recipient}))) + </code> + </option> + <option value="not starts with"> + <title>does not start with</title> + <code> + (match-all (not (or + (header-starts-with "To" ${recipient}) + (header-starts-with "Cc" ${recipient})))) + </code> + </option> + <option value="ends with"> + <title>ends with</title> + <code> + (match-all (or (header-ends-with "To" ${recipient}) + (header-ends-with "Cc" ${recipient}))) + </code> + </option> + <option value="not ends with"> + <title>does not end with</title> + <code> + (match-all (not (or + (header-ends-with "To" ${recipient}) + (header-ends-with "Cc" ${recipient})))) + </code> + </option> + <option value="matches soundex"> + <title>sounds like</title> + <code> + (match-all (or (header-soundex "To" ${recipient}) + (header-soundex "Cc" ${recipient}))) + </code> + </option> + <option value="not match soundex"> + <title>does not sound like</title> + <code> + (match-all (not (or + (header-soundex "To" ${recipient}) + (header-soundex "Cc" ${recipient})))) + </code> + </option> + </input> + <input type="address" name="recipient"/> + </part> + + <part name="subject"> + <title>Subject</title> + <input type="optionlist" name="subject-type"> + <option value="contains"> + <title>contains</title> + <code> + (match-all (header-contains "Subject" ${subject})) + </code> + </option> + <option value="not contains"> + <title>does not contain</title> + <code> + (match-all (not (header-contains "Subject" ${subject}))) + </code> + </option> + <option value="is"> + <title>is</title> + <code> + (match-all (header-matches "Subject" ${subject})) + </code> + </option> + <option value="is not"> + <title>is not</title> + <code> + (match-all (not (header-matches "Subject" ${subject}))) + </code> + </option> + <option value="starts with"> + <title>starts with</title> + <code> + (match-all (header-starts-with "Subject" ${subject})) + </code> + </option> + <option value="not starts with"> + <title>does not start with</title> + <code> + (match-all (not (header-starts-with "Subject" ${subject}))) + </code> + </option> + <option value="ends with"> + <title>ends with</title> + <code> + (match-all (header-ends-with "Subject" ${subject})) + </code> + </option> + <option value="not ends with"> + <title>does not end with</title> + <code> + (match-all (not (header-ends-with "Subject" ${subject}))) + </code> + </option> + <option value="matches soundex"> + <title>sounds like</title> + <code> + (match-all (header-soundex "Subject" ${subject})) + </code> + </option> + <option value="not match soundex"> + <title>does not sound like</title> + <code> + (match-all (not (header-soundex "Subject" ${subject}))) + </code> + </option> + </input> + <input type="string" name="subject"/> + </part> + + <part name="header"> + <title>Specific header</title> + <input type="string" name="header-field"/> + <input type="optionlist" name="header-type"> + <option value="contains"> + <title>contains</title> + <code> + (match-all (header-contains ${header-field} ${word})) + </code> + </option> + <option value="not contains"> + <title>does not contain</title> + <code> + (match-all (not (header-contains ${header-field} ${word}))) + </code> + </option> + <option value="is"> + <title>is</title> + <code> + (match-all (header-matches ${header-field} ${word})) + </code> + </option> + <option value="is not"> + <title>is not</title> + <code> + (match-all (not (header-matches ${header-field} ${word}))) + </code> + </option> + <option value="starts with"> + <title>starts with</title> + <code> + (match-all (header-starts-with ${header-field} ${word})) + </code> + </option> + <option value="not starts with"> + <title>does not start with</title> + <code> + (match-all (not (header-starts-with ${header-field} ${word}))) + </code> + </option> + <option value="ends with"> + <title>ends with</title> + <code> + (match-all (header-ends-with ${header-field} ${word})) + </code> + </option> + <option value="not ends with"> + <title>does not end with</title> + <code> + (match-all (not (header-ends-with ${header-field} ${word}))) + </code> + </option> + <option value="exists"> + <title>exists</title> + <code> + (match-all (header-exists ${header-field})) + </code> + </option> + <option value="not exists"> + <title>does not exist</title> + <code> + (match-all (not (header-exists ${header-field}))) + </code> + </option> + <option value="matches soundex"> + <title>sounds like</title> + <code> + (match-all (header-soundex ${header-field} ${word})) + </code> + </option> + <option value="not match soundex"> + <title>does not sound like</title> + <code> + (match-all (not (header-soundex ${header-field} ${word}))) + </code> + </option> + </input> + <input type="string" name="word"/> + </part> + + <part name="body"> + <title>Message Body</title> + <input type="optionlist" name="body-type"> + <option value="contains"> + <title>contains</title> + <code> + (body-contains ${word}) + </code> + </option> + <option value="not contains"> + <title>does not contain</title> + <code> + (match-all (not (body-contains ${word}))) + </code> + </option> + </input> + <input type="string" name="word"/> + </part> + + <part name="sexp"> + <title>Expression</title> + <input type="code" name="code"/> + </part> + + <part name="sent-date"> + <title>Date sent</title> + <input type="optionlist" name="date-spec-type"> + <option value="is"> + <title>is</title> + <code> + (match-all (= (get-sent-date) ${versus})) + </code> + </option> + <option value="is-not"> + <title>is not</title> + <code> + (match-all (not (= (get-sent-date) ${versus}))) + </code> + </option> + <option value="before"> + <title>is before</title> + <code> + (match-all (< (get-sent-date) ${versus})) + </code> + </option> + <option value="after"> + <title>is after</title> + <code> + (match-all (> (get-sent-date) ${versus})) + </code> + </option> + </input> + <input type="datespec" name="versus"/> + </part> + + <part name="recv-date"> + <title>Date received</title> + <input type="optionlist" name="date-spec-type"> + <option value="is"> + <title>is</title> + <code> + (match-all (= (get-received-date) ${versus})) + </code> + </option> + <option value="is-not"> + <title>is not</title> + <code> + (match-all (not (= (get-received-date) ${versus}))) + </code> + </option> + <option value="before"> + <title>is before</title> + <code> + (match-all (< (get-received-date) ${versus})) + </code> + </option> + <option value="after"> + <title>is after</title> + <code> + (match-all (> (get-received-date) ${versus})) + </code> + </option> + </input> + <input type="datespec" name="versus"/> + </part> + + <part name="label"> + <title>Label</title> + <input type="optionlist" name="label-type"> + <option value="is"> + <title>is</title> + <code> + (match-all (= (user-tag "label") ${versus})) + </code> + </option> + <option value="is-not"> + <title>is not</title> + <code> + (match-all (not (= (user-tag "label") ${versus}))) + </code> + </option> + </input> + <input type="label" name="versus"/> + </part> + + <part name="score"> + <title>Score</title> + <input type="optionlist" name="score-type"> + <option value="is"> + <title>is</title> + <code> + (match-all (= (cast-int (user-tag "score")) ${versus})) + </code> + </option> + <option value="is-not"> + <title>is not</title> + <code> + (match-all (not (= (cast-int (user-tag "score")) ${versus}))) + </code> + </option> + <option value="greater-than"> + <title>is greater than</title> + <code> + (match-all (> (cast-int (user-tag "score")) ${versus})) + </code> + </option> + <option value="less-than"> + <title>is less than</title> + <code> + (match-all (< (cast-int (user-tag "score")) ${versus})) + </code> + </option> + </input> + <input type="score" name="versus"/> + </part> + + <part name="size"> + <title>Size (kB)</title> + <input type="optionlist" name="size-type"> + <option value="greater-than"> + <title>is greater than</title> + <code> + (match-all (> (get-size) ${versus})) + </code> + </option> + <option value="less-than"> + <title>is less than</title> + <code> + (match-all (< (get-size) ${versus})) + </code> + </option> + </input> + <input type="integer" name="versus"/> + </part> + + <part name="status"> + <title>Status</title> + <input type="optionlist" name="match-type"> + <option value="is"> + <title>is</title> + <code> + (match-all (system-flag ${flag})) + </code> + </option> + <option value="is not"> + <title>is not</title> + <code> + (match-all (not (system-flag ${flag}))) + </code> + </option> + </input> + <input type="optionlist" name="flag"> + <option value="Answered"> + <title>Replied to</title> + </option> + <option value="Draft"> + <title>Draft</title> + </option> + <option value="Flagged"> + <title>Important</title> + </option> + <option value="Seen"> + <title>Read</title> + </option> + <option value="Junk"> + <title>Junk</title> + </option> + </input> + </part> + + <part name="follow-up"> + <title>Follow Up</title> + <input type="optionlist" name="match-type"> + <option value="is"> + <title>is Flagged</title> + <code> + (match-all (not (= (user-tag "follow-up") ""))) + </code> + </option> + <option value="is not"> + <title>is not Flagged</title> + <code> + (match-all (= (user-tag "follow-up") "")) + </code> + </option> + </input> + </part> + + <part name="attachments"> + <title>Attachments</title> + <input type="optionlist" name="match-type"> + <option value="exist"> + <title>Exist</title> + <code> + (match-all (system-flag "Attachments")) + </code> + </option> + <option value="not exist"> + <title>Do Not Exist</title> + <code> + (match-all (not (system-flag "Attachments"))) + </code> + </option> + </input> + </part> + + <part name="mlist"> + <title>Mailing list</title> + <input type="optionlist" name="mlist-type"> + <option value="is"> + <title>is</title> + <code>(match-all (header-matches "x-camel-mlist" ${mlist}))</code> + </option> + <option value="is not"> + <title>is not</title> + <code>(match-all (not (header-matches "x-camel-mlist" ${mlist})))</code> + </option> + <option value="contains"> + <title>contains</title> + <code>(match-all (header-contains "x-camel-mlist" ${mlist}))</code> + </option> + <option value="not contains"> + <title>does not contain</title> + <code>(match-all (not (header-contains "x-camel-mlist" ${mlist})))</code> + </option> + </input> + <input type="string" name="mlist"/> + </part> + + <part name="regex"> + <title>Regex Match</title> + <input type="optionlist" name="match-type"> + <option value="header"> + <title>Message Header</title> + <code> + (match-all (header-full-regex ${expression})) + </code> + </option> + <option value="body"> + <title>Message Body</title> + <code> + (match-all (body-regex ${expression})) + </code> + </option> + </input> + <input type="regex" name="expression"/> + </part> + + <part name="source"> + <title>Source Account</title> + <input type="optionlist" name="srcmatch-type"> + <option value="is"> + <title>is</title> + <code> + (match-all (header-source ${source})) + </code> + </option> + <option value="is-not"> + <title>is not</title> + <code> + (match-all (not (header-source ${source}))) + </code> + </option> + </input> + <input type="source" name="source"/> + </part> + + <part name="pipe"> + <title>Pipe to Program</title> + <input type="command" name="command"/> + <input type="optionlist" name="retval-type"> + <option value="is"> + <title>returns</title> + <code> + (match-all (= (pipe-message "/bin/sh" "-c" ${command}) ${retval})) + </code> + </option> + <option value="is-not"> + <title>does not return</title> + <code> + (match-all (not (= (pipe-message "/bin/sh" "-c" ${command}) ${retval}))) + </code> + </option> + <option value="greater-than"> + <title>returns greater than</title> + <code> + (match-all (> (pipe-message "/bin/sh" "-c" ${command}) ${retval})) + </code> + </option> + <option value="less-than"> + <title>returns less than</title> + <code> + (match-all (< (pipe-message "/bin/sh" "-c" ${command}) ${retval})) + </code> + </option> + </input> + <input type="integer" name="retval"/> + </part> + + <part name="junk"> + <title>Junk Test</title> + <input type="optionlist" name="retval-type"> + <option value="is-junk"> + <title>Message is Junk</title> + <code> + (match-all (junk-test)) + </code> + </option> + <option value="is-not-junk"> + <title>Message is not Junk</title> + <code> + (match-all (not (junk-test))) + </code> + </option> + </input> + </part> + +</partset> + + +<actionset> + <part name="move-to-folder"> + <title>Move to Folder</title> + <code>(move-to ${folder})</code> + <input type="folder" name="folder"/> + </part> + <part name="copy-to-folder"> + <title>Copy to Folder</title> + <code>(copy-to ${folder})</code> + <input type="folder" name="folder"/> + </part> + <part name="delete"> + <title>Delete</title> + <code>(delete)</code> + </part> + <part name="stop"> + <title>Stop Processing</title> + <code>(stop)</code> + </part> + <part name="colour"> + <title>Assign Color</title> + <code>(set-colour ${colour})</code> + <input type="colour" name="colour"/> + </part> + <part name="score"> + <title>Assign Score</title> + <code>(set-score ${score})</code> + <input type="score" name="score"/> + </part> + <part name="adj-score"> + <title>Adjust Score</title> + <code>(adjust-score ${score})</code> + <input type="score" name="score"/> + </part> + <part name="set-status"> + <title>Set Status</title> + <code> + (set-system-flag ${flag}) + </code> + <input type="optionlist" name="flag"> + <option value="Answered"> + <title>Replied to</title> + </option> + <option value="Deleted"> + <title>Deleted</title> + </option> + <option value="Draft"> + <title>Draft</title> + </option> + <option value="Flagged"> + <title>Important</title> + </option> + <option value="Seen"> + <title>Read</title> + </option> + <option value="Junk"> + <title>Junk</title> + </option> + </input> + </part> + <part name="unset-status"> + <title>Unset Status</title> + <code> + (unset-system-flag ${flag}) + </code> + <input type="optionlist" name="flag"> + <option value="Answered"> + <title>Replied to</title> + </option> + <option value="Deleted"> + <title>Deleted</title> + </option> + <option value="Draft"> + <title>Draft</title> + </option> + <option value="Flagged"> + <title>Important</title> + </option> + <option value="Seen"> + <title>Read</title> + </option> + <option value="Junk"> + <title>Junk</title> + </option> + </input> + </part> + <part name="beep"> + <title>Beep</title> + <code>(beep)</code> + </part> + <part name="play-sound"> + <title>Play Sound</title> + <code>(play-sound ${sound})</code> + <input type="file" name="sound"/> + </part> + <part name="shell"> + <title>Run Program</title> + <code>(shell "/bin/sh" "-c" ${command})</code> + <input type="command" name="command"/> + </part> + <part name="pipe"> + <title>Pipe to Program</title> + <code>(pipe-message "/bin/sh" "-c" ${command})</code> + <input type="command" name="command"/> + </part> +</actionset> +</filterdescription> |