aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mail/ChangeLog8
-rw-r--r--mail/filtertypes.xml104
-rw-r--r--mail/vfoldertypes.xml83
3 files changed, 194 insertions, 1 deletions
diff --git a/mail/ChangeLog b/mail/ChangeLog
index 76ed190ad0..b9caa225db 100644
--- a/mail/ChangeLog
+++ b/mail/ChangeLog
@@ -1,3 +1,11 @@
+2008-11-04 Milan Crha <mcrha@redhat.com>
+
+ ** Fix for bug #386036
+
+ * vfoldertypes.xml:
+ * filtertypes.xml: Added new option "Sender or Recipients" which
+ filters on From/To/Cc/Bcc headers.
+
2008-11-02 Matthew Barnes <mbarnes@redhat.com>
** Fixes part of bug #559042
diff --git a/mail/filtertypes.xml b/mail/filtertypes.xml
index 74029112d1..60702f2b08 100644
--- a/mail/filtertypes.xml
+++ b/mail/filtertypes.xml
@@ -283,7 +283,109 @@
</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>
+ <option value="matches soundex">
+ <title>sounds like</title>
+ <code>
+ (match-all (or (header-soundex "From" ${recipient})
+ (header-soundex "To" ${recipient})
+ (header-soundex "Cc" ${recipient})
+ (header-soundex "Bcc" ${recipient})))
+ </code>
+ </option>
+ <option value="not match soundex">
+ <title>does not sound like</title>
+ <code>
+ (match-all (not (or
+ (header-soundex "From" ${recipient})
+ (header-soundex "To" ${recipient})
+ (header-soundex "Cc" ${recipient})
+ (header-soundex "Bcc" ${recipient}))))
+ </code>
+ </option>
+ </input>
+ <input type="address" name="recipient"/>
+ </part>
+
<part name="subject">
<title>Subject</title>
<input type="optionlist" name="subject-type">
diff --git a/mail/vfoldertypes.xml b/mail/vfoldertypes.xml
index 2ccb552cb5..f7b4b7d8cd 100644
--- a/mail/vfoldertypes.xml
+++ b/mail/vfoldertypes.xml
@@ -115,6 +115,89 @@
<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">