diff options
Diffstat (limited to 'mail/searchtypes.xml')
-rw-r--r-- | mail/searchtypes.xml | 317 |
1 files changed, 317 insertions, 0 deletions
diff --git a/mail/searchtypes.xml b/mail/searchtypes.xml index ded2e2eabd..83941d875c 100644 --- a/mail/searchtypes.xml +++ b/mail/searchtypes.xml @@ -115,6 +115,223 @@ <input type="address" name="recipient"/> </part> + <part name="cc"> + <title>CC</title> + <input type="optionlist" name="recipient-type"> + <option value="contains"> + <title>contains</title> + <code> + (match-all (header-contains "Cc" ${recipient})) + </code> + </option> + <option value="not contains"> + <title>does not contain</title> + <code> + (match-all (not (header-contains "Cc" ${recipient}))) + </code> + </option> + <option value="is"> + <title>is</title> + <code> + (match-all (header-matches "Cc" ${recipient})) + </code> + </option> + <option value="is not"> + <title>is not</title> + <code> + (match-all (not (header-matches "Cc" ${recipient}))) + </code> + </option> + <option value="starts with"> + <title>starts with</title> + <code> + (match-all (header-starts-with "Cc" ${recipient})) + </code> + </option> + <option value="not starts with"> + <title>does not start with</title> + <code> + (match-all (not (header-starts-with "Cc" ${recipient}))) + </code> + </option> + <option value="ends with"> + <title>ends with</title> + <code> + (match-all (header-ends-with "Cc" ${recipient})) + </code> + </option> + <option value="not ends with"> + <title>does not end with</title> + <code> + (match-all (not (header-ends-with "Cc" ${recipient}))) + </code> + </option> + <option value="matches soundex"> + <title>sounds like</title> + <code> + (match-all (header-soundex "Cc" ${recipient})) + </code> + </option> + <option value="not match soundex"> + <title>does not sound like</title> + <code> + (match-all (not (header-soundex "Cc" ${recipient}))) + </code> + </option> + </input> + <input type="address" name="recipient"/> + </part> + + <part name="bcc"> + <title>BCC</title> + <input type="optionlist" name="recipient-type"> + <option value="contains"> + <title>contains</title> + <code> + (match-all (header-contains "Bcc" ${recipient})) + </code> + </option> + <option value="not contains"> + <title>does not contain</title> + <code> + (match-all (not (header-contains "Bcc" ${recipient}))) + </code> + </option> + <option value="is"> + <title>is</title> + <code> + (match-all (header-matches "Bcc" ${recipient})) + </code> + </option> + <option value="is not"> + <title>is not</title> + <code> + (match-all (not (header-matches "Bcc" ${recipient}))) + </code> + </option> + <option value="starts with"> + <title>starts with</title> + <code> + (match-all (header-starts-with "Bcc" ${recipient})) + </code> + </option> + <option value="not starts with"> + <title>does not start with</title> + <code> + (match-all (not (header-starts-with "Bcc" ${recipient}))) + </code> + </option> + <option value="ends with"> + <title>ends with</title> + <code> + (match-all (header-ends-with "Bcc" ${recipient})) + </code> + </option> + <option value="not ends with"> + <title>does not end with</title> + <code> + (match-all (not (header-ends-with "Bcc" ${recipient}))) + </code> + </option> + <option value="matches soundex"> + <title>sounds like</title> + <code> + (match-all (header-soundex "Bcc" ${recipient})) + </code> + </option> + <option value="not match soundex"> + <title>does not sound like</title> + <code> + (match-all (not (header-soundex "Bcc" ${recipient}))) + </code> + </option> + </input> + <input type="address" name="recipient"/> + </part> + + <part name="senderto"> + <title>Sender or Recipients</title> + <input type="optionlist" name="recipient-type"> + <option value="contains"> + <title>contains</title> + <code> + (match-all (or (header-contains "From" ${recipient}) + (header-contains "To" ${recipient}) + (header-contains "Cc" ${recipient}) + (header-contains "Bcc" ${recipient}))) + </code> + </option> + <option value="not contains"> + <title>does not contain</title> + <code> + (match-all (not (or + (header-contains "From" ${recipient}) + (header-contains "To" ${recipient}) + (header-contains "Cc" ${recipient}) + (header-contains "Bcc" ${recipient})))) + </code> + </option> + <option value="is"> + <title>is</title> + <code> + (match-all (or (header-matches "From" ${recipient}) + (header-matches "To" ${recipient}) + (header-matches "Cc" ${recipient}) + (header-matches "Bcc" ${recipient}))) + </code> + </option> + <option value="is not"> + <title>is not</title> + <code> + (match-all (not (or + (header-matches "From" ${recipient}) + (header-matches "To" ${recipient}) + (header-matches "Cc" ${recipient}) + (header-matches "Bcc" ${recipient})))) + </code> + </option> + <option value="starts with"> + <title>starts with</title> + <code> + (match-all (or (header-starts-with "From" ${recipient}) + (header-starts-with "To" ${recipient}) + (header-starts-with "Cc" ${recipient}) + (header-starts-with "Bcc" ${recipient}))) + </code> + </option> + <option value="not starts with"> + <title>does not start with</title> + <code> + (match-all (not (or + (header-starts-with "From" ${recipient}) + (header-starts-with "To" ${recipient}) + (header-starts-with "Cc" ${recipient}) + (header-starts-with "Bcc" ${recipient})))) + </code> + </option> + <option value="ends with"> + <title>ends with</title> + <code> + (match-all (or (header-ends-with "From" ${recipient}) + (header-ends-with "To" ${recipient}) + (header-ends-with "Cc" ${recipient}) + (header-ends-with "Bcc" ${recipient}))) + </code> + </option> + <option value="not ends with"> + <title>does not end with</title> + <code> + (match-all (not (or + (header-ends-with "From" ${recipient}) + (header-ends-with "To" ${recipient}) + (header-ends-with "Cc" ${recipient}) + (header-ends-with "Bcc" ${recipient})))) + </code> + </option> + </input> + <input type="address" name="recipient"/> + </part> + <part name="subject"> <title>Subject</title> <input type="optionlist" name="subject-type"> @@ -169,6 +386,87 @@ </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"> @@ -437,6 +735,25 @@ <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="all"> <title>Match All</title> <code> |