Warning, /frameworks/syntax-highlighting/autotests/reference/test.sieve.ref is written in an unsupported language. File is not indexed.
0001 <Comment># Sieve syntax highlighting test</Comment><br/> 0002 <Comment># see RFC 5228</Comment><br/> 0003 <Normal Text></Normal Text><br/> 0004 <Comment># comments §2.3.</Comment><br/> 0005 <Normal Text></Normal Text><br/> 0006 <Comment># Single line with alerts </Comment><Alert Level 2>TODO</Alert Level 2><Comment> </Comment><Alert Level 3>###</Alert Level 3><br/> 0007 <Comment>/*</Comment><br/> 0008 <Comment> Multiline comment with alerts </Comment><Alert Level 2>FIXME</Alert Level 2><br/> 0009 <Comment> this also should be folding region</Comment><br/> 0010 <Comment> */</Comment><br/> 0011 <Normal Text></Normal Text><br/> 0012 <Comment># literal data §2.4.</Comment><br/> 0013 <Comment># numbers §2.4.1.</Comment><br/> 0014 <Decimal>42</Decimal><br/> 0015 <Decimal>100K</Decimal><br/> 0016 <Decimal>10M</Decimal><br/> 0017 <Decimal>3G</Decimal><br/> 0018 <Normal Text></Normal Text><br/> 0019 <Comment># strings §2.4.2.</Comment><br/> 0020 <String>"string"</String><br/> 0021 <String>"string</String><Special Character>\n</Special Character><String>with</String><Special Character>\"</Special Character><String>special chars"</String><br/> 0022 <Comment># not a string</Comment><br/> 0023 <String>"multi \</String><br/> 0024 <String> line \</String><br/> 0025 <String> #with</String><Special Character>\a</Special Character><String> \</String><br/> 0026 <String> continuation"</String><br/> 0027 <Comment># not a string</Comment><br/> 0028 <String>text:</String><br/> 0029 <String>Multiline</String><br/> 0030 <String>string</String><Special Character>\"</Special Character><String> "with quotes"</String><br/> 0031 <String>or # comments</String><br/> 0032 <String>this should also be a folding region</String><br/> 0033 <String>.dot</String><br/> 0034 <String>..dot</String><br/> 0035 <String>dotstuffed dot:</String><br/> 0036 <String>..</String><br/> 0037 <String>ending with a single .</String><br/> 0038 <String>.</String><br/> 0039 <Normal Text></Normal Text><br/> 0040 <Comment># encoded characters §2.4.2.4.</Comment><br/> 0041 <Comment># valid</Comment><br/> 0042 <String>"$</String><Special Character>${hex:24 24}</Special Character><String>"</String><br/> 0043 <String>"</String><Special Character>${unicode:40}</Special Character><String>"</String><br/> 0044 <String>"$</String><Special Character>${hex:40}</Special Character><String>"</String><br/> 0045 <String>"</String><Special Character>${hex: da }</Special Character><String>"</String><br/> 0046 <String>"</String><Special Character>${hex:FE }</Special Character><String>"</String><br/> 0047 <String>"</String><Special Character>${HEX: 40}</Special Character><String>"</String><br/> 0048 <String>"</String><Special Character>${unicode:40}</Special Character><String>"</String><br/> 0049 <String>"</String><Special Character>${UNICODE:40}</Special Character><String>"</String><br/> 0050 <String>"</String><Special Character>${UnICoDE:0000040}</Special Character><String>"</String><br/> 0051 <String>"</String><Special Character>${Unicode:ff}</Special Character><String>"</String><br/> 0052 <Comment>#invalid</Comment><br/> 0053 <String>"${hex:40"</String><br/> 0054 <String>"${hex:4</String><Special Character>${hex:30}</Special Character><String>}"</String><br/> 0055 <String>"${ unicode:40}"</String><br/> 0056 <String>"${Unicode:Cool}"</String><br/> 0057 <Comment># semantic errors, syntactically correct</Comment><br/> 0058 <String>"</String><Special Character>${hex:400}</Special Character><String>"</String><br/> 0059 <String>"</String><Special Character>${unicode:200000}</Special Character><String>"</String><br/> 0060 <String>"</String><Special Character>${Unicode:DF01}</Special Character><String>"</String><br/> 0061 <Normal Text></Normal Text><br/> 0062 <Comment># test lists §2.5.1</Comment><br/> 0063 <Keyword>if</Keyword><Normal Text> </Normal Text><Test>anyof</Test><Normal Text> (</Normal Text><Test>not</Test><Normal Text> </Normal Text><Test>exists</Test><Normal Text> [</Normal Text><String>"From"</String><Normal Text>, </Normal Text><String>"Date"</String><Normal Text>],</Normal Text><br/> 0064 <Normal Text> </Normal Text><Test>header</Test><Normal Text> </Normal Text><Match Type>:contains</Match Type><Normal Text> </Normal Text><String>"from"</String><Normal Text> </Normal Text><String>"fool@example.com"</String><Normal Text>) {</Normal Text><br/> 0065 <Normal Text> </Normal Text><Action>discard</Action><Normal Text>;</Normal Text><br/> 0066 <Normal Text>}</Normal Text><br/> 0067 <Keyword>if</Keyword><Normal Text> </Normal Text><Test>allof</Test><Normal Text> (</Normal Text><Test>not</Test><Normal Text> </Normal Text><Test>exists</Test><Normal Text> [</Normal Text><String>"From"</String><Normal Text>, </Normal Text><String>"Date"</String><Normal Text>],</Normal Text><br/> 0068 <Normal Text> </Normal Text><Test>header</Test><Normal Text> </Normal Text><Match Type>:contains</Match Type><Normal Text> </Normal Text><String>"from"</String><Normal Text> </Normal Text><String>"fool@example.com"</String><Normal Text>) {</Normal Text><br/> 0069 <Normal Text> </Normal Text><Action>discard</Action><Normal Text>;</Normal Text><br/> 0070 <Normal Text>}</Normal Text><br/> 0071 <Normal Text></Normal Text><br/> 0072 <Comment># match types §2.7.1.</Comment><br/> 0073 <Match Type>:contains</Match Type><br/> 0074 <Match Type>:matches</Match Type><br/> 0075 <Match Type>:is</Match Type><br/> 0076 <Normal Text></Normal Text><br/> 0077 <Comment># comparators §2.7.3.</Comment><br/> 0078 <Keyword>if</Keyword><Normal Text> </Normal Text><Test>header</Test><Normal Text> </Normal Text><Match Type>:contains</Match Type><Normal Text> </Normal Text><Argument>:comparator</Argument><Normal Text> </Normal Text><String>"i;octet"</String><Normal Text> </Normal Text><String>"Subject"</String><Normal Text> </Normal Text><String>"MAKE MONEY FAST"</String><Normal Text> {</Normal Text><br/> 0079 <Normal Text> </Normal Text><Action>discard</Action><Normal Text>;</Normal Text><br/> 0080 <Normal Text>}</Normal Text><br/> 0081 <Normal Text></Normal Text><br/> 0082 <Comment># comparison against addresses §2.7.4.</Comment><br/> 0083 <Argument>:localpart</Argument><br/> 0084 <Argument>:domain</Argument><br/> 0085 <Argument>:all</Argument><br/> 0086 <Normal Text></Normal Text><br/> 0087 <Comment># commands §2.9.</Comment><br/> 0088 <Action>keep</Action><Normal Text>;</Normal Text><br/> 0089 <Action>fileinto</Action><Normal Text> </Normal Text><String>"inbox.bla"</String><Normal Text>;</Normal Text><br/> 0090 <Action>redirect</Action><Normal Text> </Normal Text><String>"test@kde.org"</String><Normal Text>;</Normal Text><br/> 0091 <Action>discard</Action><Normal Text>;</Normal Text><br/> 0092 <Normal Text></Normal Text><br/> 0093 <Comment># control if §3.1.</Comment><br/> 0094 <Comment># this also should create folding regions</Comment><br/> 0095 <Keyword>if</Keyword><Normal Text> </Normal Text><Test>header</Test><Normal Text> </Normal Text><Match Type>:contains</Match Type><Normal Text> </Normal Text><String>"from"</String><Normal Text> </Normal Text><String>"foo"</String><Normal Text> {</Normal Text><br/> 0096 <Normal Text> </Normal Text><Action>discard</Action><Normal Text>;</Normal Text><br/> 0097 <Normal Text>} </Normal Text><Keyword>elsif</Keyword><Normal Text> </Normal Text><Test>header</Test><Normal Text> </Normal Text><Match Type>:contains</Match Type><Normal Text> [</Normal Text><String>"subject"</String><Normal Text>] [</Normal Text><String>"$$$"</String><Normal Text>] {</Normal Text><br/> 0098 <Normal Text> </Normal Text><Action>discard</Action><Normal Text>;</Normal Text><br/> 0099 <Normal Text>} </Normal Text><Keyword>else</Keyword><Normal Text> {</Normal Text><br/> 0100 <Normal Text> </Normal Text><Action>fileinto</Action><Normal Text> </Normal Text><String>"INBOX"</String><Normal Text>;</Normal Text><br/> 0101 <Normal Text>}</Normal Text><br/> 0102 <Normal Text></Normal Text><br/> 0103 <Comment># control require §3.2.</Comment><br/> 0104 <Keyword>require</Keyword><Normal Text> </Normal Text><String>"fileinto"</String><Normal Text>;</Normal Text><br/> 0105 <Keyword>require</Keyword><Normal Text> [</Normal Text><String>"vacation"</String><Normal Text>, </Normal Text><String>"imapflags"</String><Normal Text>];</Normal Text><br/> 0106 <Normal Text></Normal Text><br/> 0107 <Comment># control stop §3.3.</Comment><br/> 0108 <Action>stop</Action><Normal Text>;</Normal Text><br/> 0109 <Normal Text></Normal Text><br/> 0110 <Comment># test commands §5.</Comment><br/> 0111 <Test>address</Test><br/> 0112 <Test>allof</Test><br/> 0113 <Test>anyof</Test><br/> 0114 <Test>exists</Test><br/> 0115 <Test>false</Test><br/> 0116 <Test>header</Test><br/> 0117 <Test>not</Test><br/> 0118 <Test>size</Test><br/> 0119 <Test>true</Test><br/> 0120 <Normal Text></Normal Text><br/> 0121 <Comment># test address §5.1.</Comment><br/> 0122 <Keyword>if</Keyword><Normal Text> </Normal Text><Test>address</Test><Normal Text> </Normal Text><Match Type>:is</Match Type><Normal Text> </Normal Text><Argument>:all</Argument><Normal Text> </Normal Text><String>"from"</String><Normal Text> </Normal Text><String>"kde@example.com"</String><Normal Text> {</Normal Text><br/> 0123 <Normal Text> </Normal Text><Action>discard</Action><Normal Text>;</Normal Text><br/> 0124 <Normal Text>} </Normal Text><Keyword>elsif</Keyword><Normal Text> </Normal Text><Test>address</Test><Normal Text> </Normal Text><Argument>:domain</Argument><Normal Text> </Normal Text><Match Type>:is</Match Type><Normal Text> [</Normal Text><String>"From"</String><Normal Text>, </Normal Text><String>"To"</String><Normal Text>] </Normal Text><String>"example.com"</String><Normal Text> { </Normal Text><Comment># comment</Comment><br/> 0125 <Normal Text> </Normal Text><Action>keep</Action><Normal Text>; </Normal Text><Comment># comment</Comment><br/> 0126 <Normal Text>}</Normal Text><br/> 0127 <Normal Text></Normal Text><br/> 0128 <Comment># test envelope §5.4.</Comment><br/> 0129 <Keyword>if</Keyword><Normal Text> </Normal Text><Test>envelope</Test><Normal Text> </Normal Text><Argument>:all</Argument><Normal Text> </Normal Text><Match Type>:is</Match Type><Normal Text> </Normal Text><String>"from"</String><Normal Text> </Normal Text><String>"kde@example.com"</String><Normal Text> {</Normal Text><br/> 0130 <Normal Text> </Normal Text><Action>discard</Action><Normal Text>;</Normal Text><br/> 0131 <Normal Text>}</Normal Text><br/> 0132 <Normal Text></Normal Text><br/> 0133 <Comment># test exists §5.5.</Comment><br/> 0134 <Keyword>if</Keyword><Normal Text> </Normal Text><Test>not</Test><Normal Text> </Normal Text><Test>exists</Test><Normal Text> [</Normal Text><String>"From"</String><Normal Text>,</Normal Text><String>"Date"</String><Normal Text>] {</Normal Text><br/> 0135 <Normal Text> </Normal Text><Action>discard</Action><Normal Text>;</Normal Text><br/> 0136 <Normal Text>}</Normal Text><br/> 0137 <Normal Text></Normal Text><br/> 0138 <Comment># test header §5.7.</Comment><br/> 0139 <Test>not</Test><Normal Text> </Normal Text><Test>header</Test><Normal Text> </Normal Text><Match Type>:matches</Match Type><Normal Text> </Normal Text><String>"Cc"</String><Normal Text> </Normal Text><String>"?*"</String><br/> 0140 <Normal Text></Normal Text><br/> 0141 <Comment># test size §5.9.</Comment><br/> 0142 <Keyword>if</Keyword><Normal Text> </Normal Text><Test>size</Test><Normal Text> </Normal Text><Argument>:over</Argument><Normal Text> </Normal Text><Decimal>500K</Decimal><Normal Text> { </Normal Text><Action>discard</Action><Normal Text>; }</Normal Text><br/> 0143 <Keyword>if</Keyword><Normal Text> </Normal Text><Test>size</Test><Normal Text> </Normal Text><Argument>:under</Argument><Normal Text> </Normal Text><Decimal>1M</Decimal><Normal Text> { </Normal Text><Action>keep</Action><Normal Text>; } </Normal Text><Keyword>else</Keyword><Normal Text> { </Normal Text><Action>discard</Action><Normal Text>; }</Normal Text><br/> 0144 <Normal Text></Normal Text><br/> 0145 <Normal Text></Normal Text><br/> 0146 <Comment>/*</Comment><br/> 0147 <Comment> * Extensions</Comment><br/> 0148 <Comment> * see https://www.iana.org/assignments/sieve-extensions/sieve-extensions.xhtml</Comment><br/> 0149 <Comment> */</Comment><br/> 0150 <Normal Text></Normal Text><br/> 0151 <Comment># Body RFC5173</Comment><br/> 0152 <Argument>:raw</Argument><br/> 0153 <Argument>:content</Argument><br/> 0154 <Argument>:text</Argument><br/> 0155 <Keyword>if</Keyword><Normal Text> </Normal Text><Test>body</Test><Normal Text> </Normal Text><Argument>:raw</Argument><Normal Text> </Normal Text><Match Type>:contains</Match Type><Normal Text> </Normal Text><String>"MAKE MONEY FAST"</String><Normal Text> {</Normal Text><br/> 0156 <Normal Text> </Normal Text><Action>discard</Action><Normal Text>;</Normal Text><br/> 0157 <Normal Text>}</Normal Text><br/> 0158 <Keyword>if</Keyword><Normal Text> </Normal Text><Test>body</Test><Normal Text> </Normal Text><Argument>:content</Argument><Normal Text> </Normal Text><String>"text"</String><Normal Text> </Normal Text><Match Type>:contains</Match Type><Normal Text> [</Normal Text><String>"bla"</String><Normal Text>, </Normal Text><String>"blub"</String><Normal Text>] {</Normal Text><br/> 0159 <Normal Text> </Normal Text><Action>fileinto</Action><Normal Text> </Normal Text><String>"inbox.foo"</String><Normal Text>;</Normal Text><br/> 0160 <Normal Text>}</Normal Text><br/> 0161 <Normal Text></Normal Text><br/> 0162 <Comment># Convert RFC6558</Comment><br/> 0163 <Keyword>require</Keyword><Normal Text> [</Normal Text><String>"convert"</String><Normal Text>];</Normal Text><br/> 0164 <Action>convert</Action><Normal Text> </Normal Text><String>"image/tiff"</String><Normal Text> </Normal Text><String>"image/jpeg"</String><Normal Text> [</Normal Text><String>"pix-x=320"</String><Normal Text>,</Normal Text><String>"pix-y=240"</String><Normal Text>];</Normal Text><br/> 0165 <Normal Text></Normal Text><br/> 0166 <Comment># Copy RFC3894</Comment><br/> 0167 <Keyword>require</Keyword><Normal Text> [</Normal Text><String>"copy"</String><Normal Text>, </Normal Text><String>"fileinto"</String><Normal Text>];</Normal Text><br/> 0168 <Action>fileinto</Action><Normal Text> </Normal Text><Argument>:copy</Argument><Normal Text> </Normal Text><String>"incoming"</String><Normal Text>;</Normal Text><br/> 0169 <Normal Text></Normal Text><br/> 0170 <Comment># Date RFC5260</Comment><br/> 0171 <Keyword>require</Keyword><Normal Text> [</Normal Text><String>"date"</String><Normal Text>, </Normal Text><String>"relational"</String><Normal Text>, </Normal Text><String>"fileinto"</String><Normal Text>];</Normal Text><br/> 0172 <Keyword>if</Keyword><Normal Text> </Normal Text><Test>allof</Test><Normal Text>(</Normal Text><Test>header</Test><Normal Text> </Normal Text><Match Type>:is</Match Type><Normal Text> </Normal Text><String>"from"</String><Normal Text> </Normal Text><String>"boss@example.com"</String><Normal Text>,</Normal Text><br/> 0173 <Normal Text> </Normal Text><Test>date</Test><Normal Text> </Normal Text><Match Type>:value</Match Type><Normal Text> </Normal Text><String>"ge"</String><Normal Text> </Normal Text><Argument>:originalzone</Argument><Normal Text> </Normal Text><String>"date"</String><Normal Text> </Normal Text><String>"hour"</String><Normal Text> </Normal Text><String>"09"</String><Normal Text>,</Normal Text><br/> 0174 <Normal Text> </Normal Text><Test>date</Test><Normal Text> </Normal Text><Match Type>:value</Match Type><Normal Text> </Normal Text><String>"lt"</String><Normal Text> </Normal Text><Argument>:originalzone</Argument><Normal Text> </Normal Text><String>"date"</String><Normal Text> </Normal Text><String>"hour"</String><Normal Text> </Normal Text><String>"17"</String><Normal Text>)</Normal Text><br/> 0175 <Normal Text> { </Normal Text><Action>fileinto</Action><Normal Text> </Normal Text><String>"urgent"</String><Normal Text>; }</Normal Text><br/> 0176 <Keyword>if</Keyword><Normal Text> </Normal Text><Test>anyof</Test><Normal Text>(</Normal Text><Test>date</Test><Normal Text> </Normal Text><Match Type>:is</Match Type><Normal Text> </Normal Text><String>"received"</String><Normal Text> </Normal Text><String>"weekday"</String><Normal Text> </Normal Text><String>"0"</String><Normal Text>,</Normal Text><br/> 0177 <Normal Text> </Normal Text><Test>date</Test><Normal Text> </Normal Text><Match Type>:is</Match Type><Normal Text> </Normal Text><String>"received"</String><Normal Text> </Normal Text><String>"weekday"</String><Normal Text> </Normal Text><String>"6"</String><Normal Text>)</Normal Text><br/> 0178 <Normal Text>{ </Normal Text><Action>fileinto</Action><Normal Text> </Normal Text><String>"weekend"</String><Normal Text>; }</Normal Text><br/> 0179 <Keyword>if</Keyword><Normal Text> </Normal Text><Test>anyof</Test><Normal Text>(</Normal Text><Test>currentdate</Test><Normal Text> </Normal Text><Match Type>:is</Match Type><Normal Text> </Normal Text><String>"weekday"</String><Normal Text> </Normal Text><String>"0"</String><Normal Text>,</Normal Text><br/> 0180 <Normal Text> </Normal Text><Test>currentdate</Test><Normal Text> </Normal Text><Match Type>:is</Match Type><Normal Text> </Normal Text><String>"weekday"</String><Normal Text> </Normal Text><String>"6"</String><Normal Text>,</Normal Text><br/> 0181 <Normal Text> </Normal Text><Test>currentdate</Test><Normal Text> </Normal Text><Match Type>:value</Match Type><Normal Text> </Normal Text><String>"lt"</String><Normal Text> </Normal Text><String>"hour"</String><Normal Text> </Normal Text><String>"09"</String><Normal Text>,</Normal Text><br/> 0182 <Normal Text> </Normal Text><Test>currentdate</Test><Normal Text> </Normal Text><Match Type>:value</Match Type><Normal Text> </Normal Text><String>"ge"</String><Normal Text> </Normal Text><String>"hour"</String><Normal Text> </Normal Text><String>"17"</String><Normal Text>)</Normal Text><br/> 0183 <Normal Text>{ </Normal Text><Action>redirect</Action><Normal Text> </Normal Text><String>"pager@example.com"</String><Normal Text>; }</Normal Text><br/> 0184 <Keyword>if</Keyword><Normal Text> </Normal Text><Test>allof</Test><Normal Text>(</Normal Text><Test>currentdate</Test><Normal Text> </Normal Text><Match Type>:value</Match Type><Normal Text> </Normal Text><String>"ge"</String><Normal Text> </Normal Text><String>"date"</String><Normal Text> </Normal Text><String>"2007-06-30"</String><Normal Text>,</Normal Text><br/> 0185 <Normal Text> </Normal Text><Test>currentdate</Test><Normal Text> </Normal Text><Match Type>:value</Match Type><Normal Text> </Normal Text><String>"le"</String><Normal Text> </Normal Text><String>"date"</String><Normal Text> </Normal Text><String>"2007-07-07"</String><Normal Text>)</Normal Text><br/> 0186 <Normal Text>{ </Normal Text><Action>vacation</Action><Normal Text> </Normal Text><Argument>:days</Argument><Normal Text> </Normal Text><Decimal>7</Decimal><Normal Text> </Normal Text><String>"I'm away during the first week in July."</String><Normal Text>; }</Normal Text><br/> 0187 <Normal Text></Normal Text><br/> 0188 <Keyword>require</Keyword><Normal Text> [</Normal Text><String>"date"</String><Normal Text>, </Normal Text><String>"variables"</String><Normal Text>, </Normal Text><String>"fileinto"</String><Normal Text>];</Normal Text><br/> 0189 <Keyword>if</Keyword><Normal Text> </Normal Text><Test>currentdate</Test><Normal Text> </Normal Text><Match Type>:matches</Match Type><Normal Text> </Normal Text><String>"month"</String><Normal Text> </Normal Text><String>"*"</String><Normal Text> { </Normal Text><Action>set</Action><Normal Text> </Normal Text><String>"month"</String><Normal Text> </Normal Text><String>"</String><Variable>${1}</Variable><String>"</String><Normal Text>; }</Normal Text><br/> 0190 <Keyword>if</Keyword><Normal Text> </Normal Text><Test>currentdate</Test><Normal Text> </Normal Text><Match Type>:matches</Match Type><Normal Text> </Normal Text><String>"year"</String><Normal Text> </Normal Text><String>"*"</String><Normal Text> { </Normal Text><Action>set</Action><Normal Text> </Normal Text><String>"year"</String><Normal Text> </Normal Text><String>"</String><Variable>${1}</Variable><String>"</String><Normal Text>; }</Normal Text><br/> 0191 <Action>fileinto</Action><Normal Text> </Normal Text><String>"</String><Variable>${month}</Variable><String>-</String><Variable>${year}</Variable><String>"</String><Normal Text>;</Normal Text><br/> 0192 <Normal Text></Normal Text><br/> 0193 <Keyword>require</Keyword><Normal Text> [</Normal Text><String>"variables"</String><Normal Text>, </Normal Text><String>"date"</String><Normal Text>, </Normal Text><String>"editheader"</String><Normal Text>];</Normal Text><br/> 0194 <Keyword>if</Keyword><Normal Text> </Normal Text><Test>currentdate</Test><Normal Text> </Normal Text><Match Type>:matches</Match Type><Normal Text> </Normal Text><String>"std11"</String><Normal Text> </Normal Text><String>"*"</String><Normal Text> {</Normal Text><Action>addheader</Action><Normal Text> </Normal Text><String>"Processing-date"</String><Normal Text> </Normal Text><String>"</String><Variable>${0}</Variable><String>"</String><Normal Text>;}</Normal Text><br/> 0195 <Normal Text></Normal Text><br/> 0196 <Keyword>require</Keyword><Normal Text> [</Normal Text><String>"date"</String><Normal Text>, </Normal Text><String>"relational"</String><Normal Text>, </Normal Text><String>"index"</String><Normal Text>];</Normal Text><br/> 0197 <Keyword>if</Keyword><Normal Text> </Normal Text><Test>date</Test><Normal Text> </Normal Text><Match Type>:value</Match Type><Normal Text> </Normal Text><String>"gt"</String><Normal Text> </Normal Text><Argument>:index</Argument><Normal Text> </Normal Text><Decimal>2</Decimal><Normal Text> </Normal Text><Argument>:zone</Argument><Normal Text> </Normal Text><String>"-0500"</String><Normal Text> </Normal Text><String>"received"</String><Normal Text> </Normal Text><String>"iso8601"</String><Normal Text> </Normal Text><String>"2007-02-26T09:00:00-05:00"</String><br/> 0198 <Normal Text>{ </Normal Text><Action>redirect</Action><Normal Text> </Normal Text><String>"aftercutoff@example.org"</String><Normal Text>; }</Normal Text><br/> 0199 <Normal Text></Normal Text><br/> 0200 <Keyword>if</Keyword><Normal Text> </Normal Text><Test>header</Test><Normal Text> </Normal Text><Argument>:index</Argument><Normal Text> </Normal Text><Decimal>1</Decimal><Normal Text> </Normal Text><Match Type>:matches</Match Type><Normal Text> </Normal Text><String>"received"</String><Normal Text> </Normal Text><String>"*(* [*.*.*.*])*"</String><Normal Text> {}</Normal Text><br/> 0201 <Normal Text></Normal Text><br/> 0202 <Comment># Duplicate RFC7352</Comment><br/> 0203 <Keyword>require</Keyword><Normal Text> [</Normal Text><String>"duplicate"</String><Normal Text>, </Normal Text><String>"variables"</String><Normal Text>];</Normal Text><br/> 0204 <Keyword>if</Keyword><Normal Text> </Normal Text><Test>duplicate</Test><Normal Text> { </Normal Text><Action>discard</Action><Normal Text>; }</Normal Text><br/> 0205 <Keyword>if</Keyword><Normal Text> </Normal Text><Test>duplicate</Test><Normal Text> </Normal Text><Argument>:header</Argument><Normal Text> </Normal Text><String>"message-id"</String><Normal Text> { </Normal Text><Action>discard</Action><Normal Text>; }</Normal Text><br/> 0206 <Keyword>if</Keyword><Normal Text> </Normal Text><Test>header</Test><Normal Text> </Normal Text><Match Type>:matches</Match Type><Normal Text> </Normal Text><String>"message-id"</String><Normal Text> </Normal Text><String>"*"</String><Normal Text> {</Normal Text><br/> 0207 <Normal Text> </Normal Text><Keyword>if</Keyword><Normal Text> </Normal Text><Test>duplicate</Test><Normal Text> </Normal Text><Argument>:uniqueid</Argument><Normal Text> </Normal Text><String>"</String><Variable>${0}</Variable><String>"</String><Normal Text> { </Normal Text><Action>discard</Action><Normal Text>; }</Normal Text><br/> 0208 <Normal Text>}</Normal Text><br/> 0209 <Normal Text></Normal Text><br/> 0210 <Comment># Editheader RFC5293</Comment><br/> 0211 <Action>addheader</Action><Normal Text> </Normal Text><String>"X-Hello"</String><Normal Text> </Normal Text><String>"World"</String><Normal Text>;</Normal Text><br/> 0212 <Action>deleteheader</Action><Normal Text> </Normal Text><Argument>:index</Argument><Normal Text> </Normal Text><Decimal>1</Decimal><Normal Text> </Normal Text><String>"X-Hello"</String><Normal Text>;</Normal Text><br/> 0213 <Normal Text></Normal Text><br/> 0214 <Comment># Enclose RFC5703</Comment><br/> 0215 <Argument>:mime</Argument><br/> 0216 <Argument>:anychild</Argument><br/> 0217 <Argument>:type</Argument><br/> 0218 <Argument>:subtype</Argument><br/> 0219 <Argument>:contenttype</Argument><br/> 0220 <Argument>:param</Argument><br/> 0221 <Action>replace</Action><br/> 0222 <Action>enclose</Action><br/> 0223 <Action>extracttext</Action><br/> 0224 <Keyword>if</Keyword><Normal Text> </Normal Text><Test>header</Test><Normal Text> </Normal Text><Argument>:mime</Argument><Normal Text> </Normal Text><Argument>:type</Argument><Normal Text> </Normal Text><String>"Content-Type"</String><Normal Text> </Normal Text><String>"image"</String><Normal Text> {}</Normal Text><br/> 0225 <Action>replace</Action><Normal Text> </Normal Text><String>"Executable attachment removed by user filter"</String><Normal Text>;</Normal Text><br/> 0226 <Keyword>foreverypart</Keyword><Normal Text> {</Normal Text><br/> 0227 <Normal Text> </Normal Text><Keyword>if</Keyword><Normal Text> </Normal Text><Test>header</Test><Normal Text> </Normal Text><Argument>:mime</Argument><Normal Text> </Normal Text><Argument>:param</Argument><Normal Text> </Normal Text><String>"filename"</String><Normal Text> </Normal Text><Match Type>:matches</Match Type><Normal Text> [</Normal Text><String>"Content-Type"</String><Normal Text>, </Normal Text><String>"Content-Disposition"</String><Normal Text>]</Normal Text><br/> 0228 <Normal Text> [</Normal Text><String>"*.com"</String><Normal Text>, </Normal Text><String>"*.exe"</String><Normal Text>, </Normal Text><String>"*.vbs"</String><Normal Text>, </Normal Text><String>"*.scr"</String><Normal Text>, </Normal Text><String>"*.pif"</String><Normal Text>, </Normal Text><String>"*.hta"</String><Normal Text>, </Normal Text><String>"*.bat"</String><Normal Text>, </Normal Text><String>"*.zip"</String><Normal Text> ] {</Normal Text><br/> 0229 <Normal Text> </Normal Text><Comment># these attachment types are executable</Comment><br/> 0230 <Normal Text> </Normal Text><Action>enclose</Action><Normal Text> </Normal Text><Argument>:subject</Argument><Normal Text> </Normal Text><String>"Warning"</String><Normal Text> </Normal Text><String>text:</String><br/> 0231 <String>WARNING! The enclosed message contains executable attachments.</String><br/> 0232 <String>These attachment types may contain a computer virus program</String><br/> 0233 <String>that can infect your computer and potentially damage your data.</String><br/> 0234 <String>.</String><br/> 0235 <Normal Text>;</Normal Text><br/> 0236 <Normal Text> </Normal Text><Action>break</Action><Normal Text>;</Normal Text><br/> 0237 <Normal Text> }</Normal Text><br/> 0238 <Normal Text>}</Normal Text><br/> 0239 <Action>extracttext</Action><Normal Text> </Normal Text><Argument>:first</Argument><Normal Text> </Normal Text><Decimal>100</Decimal><Normal Text> </Normal Text><String>"msgcontent"</String><Normal Text>;</Normal Text><br/> 0240 <Normal Text></Normal Text><br/> 0241 <Comment># Notify RFC5435</Comment><br/> 0242 <Action>notify</Action><Normal Text> </Normal Text><Argument>:importance</Argument><Normal Text> </Normal Text><String>"1"</String><Normal Text> </Normal Text><Argument>:message</Argument><Normal Text> </Normal Text><String>"This is probably very important"</String><Normal Text> </Normal Text><String>"mailto:kde@example.com"</String><Normal Text>;</Normal Text><br/> 0243 <Action>notify</Action><Normal Text> </Normal Text><Argument>:message</Argument><Normal Text> </Normal Text><String>"</String><Variable>${from_addr}${env_from}</Variable><String>: </String><Variable>${subject}</Variable><String>"</String><Normal Text> </Normal Text><String>"mailto:kde@example.com"</String><Normal Text>;</Normal Text><br/> 0244 <Keyword>if</Keyword><Normal Text> </Normal Text><Test>not</Test><Normal Text> </Normal Text><Test>valid_notify_method</Test><Normal Text> [</Normal Text><String>"mailto:"</String><Normal Text>, </Normal Text><String>"http://gw.example.net/notify?test"</String><Normal Text>] { </Normal Text><Action>stop</Action><Normal Text>; }</Normal Text><br/> 0245 <Keyword>if</Keyword><Normal Text> </Normal Text><Test>notify_method_capability</Test><Normal Text> </Normal Text><String>"xmpp:tim@example.com?message;subject=SIEVE"</String><Normal Text> </Normal Text><String>"Online"</String><Normal Text> </Normal Text><String>"yes"</String><Normal Text> {}</Normal Text><br/> 0246 <Action>set</Action><Normal Text> </Normal Text><Argument>:encodeurl</Argument><Normal Text> </Normal Text><String>"body_param"</String><Normal Text> </Normal Text><String>"stuff"</String><Normal Text>;</Normal Text><br/> 0247 <Normal Text></Normal Text><br/> 0248 <Comment># Envelope DSN RFC6009</Comment><br/> 0249 <Keyword>if</Keyword><Normal Text> </Normal Text><Test>envelope</Test><Normal Text> </Normal Text><String>"notify"</String><Normal Text> </Normal Text><String>"SUCCESS"</String><Normal Text> {}</Normal Text><br/> 0250 <Keyword>if</Keyword><Normal Text> </Normal Text><Test>allof</Test><Normal Text> (</Normal Text><Test>envelope</Test><Normal Text> </Normal Text><String>"notify"</String><Normal Text> </Normal Text><String>"FAILURE"</String><Normal Text>, </Normal Text><Test>envelope</Test><Normal Text> </Normal Text><Argument>:comparator</Argument><Normal Text> </Normal Text><String>"i;ascii-numeric"</String><Normal Text> </Normal Text><Match Type>:count</Match Type><Normal Text> </Normal Text><String>"eq"</String><Normal Text> </Normal Text><String>"notify"</String><Normal Text> </Normal Text><String>"1"</String><Normal Text>) {}</Normal Text><br/> 0251 <Keyword>if</Keyword><Normal Text> </Normal Text><Test>envelope</Test><Normal Text> </Normal Text><Match Type>:matches</Match Type><Normal Text> </Normal Text><String>"orcpt"</String><Normal Text> </Normal Text><String>"rfc822;*@example.com"</String><Normal Text> {}</Normal Text><br/> 0252 <Keyword>if</Keyword><Normal Text> </Normal Text><Test>anyof</Test><Normal Text> (</Normal Text><Test>envelope</Test><Normal Text> </Normal Text><Match Type>:contains</Match Type><Normal Text> </Normal Text><String>"bytimerelative"</String><Normal Text> </Normal Text><String>"-"</String><Normal Text>, </Normal Text><Test>envelope</Test><Normal Text> </Normal Text><Match Type>:value</Match Type><Normal Text> </Normal Text><String>"eq"</String><Normal Text> </Normal Text><Argument>:comparator</Argument><Normal Text> </Normal Text><String>"i;ascii-numeric"</String><Normal Text> </Normal Text><String>"bytimerelative"</String><Normal Text> </Normal Text><String>"0"</String><Normal Text>) {}</Normal Text><br/> 0253 <Action>redirect</Action><Normal Text> </Normal Text><Argument>:copy</Argument><Normal Text> </Normal Text><Argument>:notify</Argument><Normal Text> </Normal Text><String>"NEVER"</String><Normal Text> </Normal Text><String>"elsewhere@example.com"</String><Normal Text>;</Normal Text><br/> 0254 <Action>redirect</Action><Normal Text> </Normal Text><Argument>:copy</Argument><Normal Text> </Normal Text><Argument>:bytimerelative</Argument><Normal Text> </Normal Text><Decimal>600</Decimal><Normal Text> </Normal Text><String>"cellphone@example.com"</String><Normal Text>;</Normal Text><br/> 0255 <Action>redirect</Action><Normal Text> </Normal Text><Argument>:copy</Argument><Normal Text> </Normal Text><Argument>:bytimeabsolute</Argument><Normal Text> </Normal Text><String>"</String><Variable>${date}</Variable><String>T20:00:00</String><Variable>${zone}</Variable><String>"</String><Normal Text> </Normal Text><Argument>:bymode</Argument><Normal Text> </Normal Text><String>"return"</String><Normal Text> </Normal Text><String>"cellphone@example.com"</String><Normal Text>;</Normal Text><br/> 0256 <Normal Text></Normal Text><br/> 0257 <Comment># Environment RFC5183</Comment><br/> 0258 <Keyword>if</Keyword><Normal Text> </Normal Text><Test>environment</Test><Normal Text> </Normal Text><Match Type>:contains</Match Type><Normal Text> </Normal Text><String>"item"</String><Normal Text> </Normal Text><String>""</String><Normal Text> {}</Normal Text><br/> 0259 <Normal Text></Normal Text><br/> 0260 <Comment># Reject RFC5429</Comment><br/> 0261 <Action>ereject</Action><Normal Text> </Normal Text><String>"I no longer accept mail from this address"</String><Normal Text>;</Normal Text><br/> 0262 <Action>reject</Action><Normal Text> </Normal Text><String>text:</String><br/> 0263 <String>Your message is too big. If you want to send me a big attachment,</String><br/> 0264 <String>put it on a public web site and send me a URL.</String><br/> 0265 <String>.</String><br/> 0266 <Normal Text>;</Normal Text><br/> 0267 <Normal Text></Normal Text><br/> 0268 <Comment># External Lists RFC6134</Comment><br/> 0269 <Keyword>if</Keyword><Normal Text> </Normal Text><Test>envelope</Test><Normal Text> </Normal Text><Argument>:list</Argument><Normal Text> </Normal Text><String>"from"</String><Normal Text> </Normal Text><String>":addrbook:default"</String><Normal Text> {}</Normal Text><br/> 0270 <Keyword>if</Keyword><Normal Text> </Normal Text><Test>currentdate</Test><Normal Text> </Normal Text><Argument>:list</Argument><Normal Text> </Normal Text><String>"date"</String><Normal Text> </Normal Text><String>"tag:example.com,2011-01-01:localHolidays"</String><Normal Text> {}</Normal Text><br/> 0271 <Keyword>if</Keyword><Normal Text> </Normal Text><Test>allof</Test><Normal Text> (</Normal Text><Test>envelope</Test><Normal Text> </Normal Text><Argument>:detail</Argument><Normal Text> </Normal Text><String>"to"</String><Normal Text> </Normal Text><String>"mylist"</String><Normal Text>, </Normal Text><Test>header</Test><Normal Text> </Normal Text><Argument>:list</Argument><Normal Text> </Normal Text><String>"from"</String><Normal Text> </Normal Text><String>"tag:example.com,2010-05-28:mylist"</String><Normal Text>) {</Normal Text><br/> 0272 <Normal Text> </Normal Text><Action>redirect</Action><Normal Text> </Normal Text><Argument>:list</Argument><Normal Text> </Normal Text><String>"tag:example.com,2010-05-28:mylist"</String><Normal Text>;</Normal Text><br/> 0273 <Normal Text>}</Normal Text><br/> 0274 <Keyword>if</Keyword><Normal Text> </Normal Text><Test>string</Test><Normal Text> </Normal Text><Argument>:list</Argument><Normal Text> </Normal Text><String>"</String><Variable>${ip}</Variable><String>"</String><Normal Text> </Normal Text><String>"tag:example.com,2011-04-10:DisallowedIPs"</String><Normal Text> {}</Normal Text><br/> 0275 <Keyword>if</Keyword><Normal Text> </Normal Text><Test>header</Test><Normal Text> </Normal Text><Argument>:mime</Argument><Normal Text> </Normal Text><Argument>:param</Argument><Normal Text> </Normal Text><String>"filename"</String><Normal Text> </Normal Text><Argument>:list</Argument><Normal Text> [</Normal Text><String>"Content-Type"</String><Normal Text>, </Normal Text><String>"Content-Disposition"</String><Normal Text>] </Normal Text><String>"tag:example.com,2011-04-10:BadFileNameExts"</String><Normal Text> {}</Normal Text><br/> 0276 <Normal Text></Normal Text><br/> 0277 <Comment># ihave RFC5463</Comment><br/> 0278 <Keyword>if</Keyword><Normal Text> </Normal Text><Test>ihave</Test><Normal Text> </Normal Text><String>"fileinto"</String><Normal Text> {}</Normal Text><br/> 0279 <Action>error</Action><Normal Text> </Normal Text><String>"failed!"</String><Normal Text>;</Normal Text><br/> 0280 <Normal Text></Normal Text><br/> 0281 <Comment># IMAP Sieve RFC6785</Comment><br/> 0282 <Keyword>if</Keyword><Normal Text> </Normal Text><Test>anyof</Test><Normal Text> (</Normal Text><Test>environment</Test><Normal Text> </Normal Text><Match Type>:is</Match Type><Normal Text> </Normal Text><String>"imap.cause"</String><Normal Text> </Normal Text><String>"APPEND"</String><Normal Text>, </Normal Text><Test>environment</Test><Normal Text> </Normal Text><Match Type>:is</Match Type><Normal Text> </Normal Text><String>"imap.cause"</String><Normal Text> </Normal Text><String>"COPY"</String><Normal Text>) {</Normal Text><br/> 0283 <Normal Text> </Normal Text><Keyword>if</Keyword><Normal Text> </Normal Text><Test>environment</Test><Normal Text> </Normal Text><Match Type>:is</Match Type><Normal Text> </Normal Text><String>"imap.mailbox"</String><Normal Text> </Normal Text><String>"ActionItems"</String><Normal Text> {</Normal Text><br/> 0284 <Normal Text> </Normal Text><Action>redirect</Action><Normal Text> </Normal Text><Argument>:copy</Argument><Normal Text> </Normal Text><String>"actionitems@example.com"</String><Normal Text>;</Normal Text><br/> 0285 <Normal Text> }</Normal Text><br/> 0286 <Normal Text>}</Normal Text><br/> 0287 <Normal Text></Normal Text><br/> 0288 <Comment># IMAP4 Flags RFC5232</Comment><br/> 0289 <Action>setflag</Action><Normal Text> </Normal Text><String>"</String><Special Character>\\</Special Character><String>Deleted"</String><Normal Text>;</Normal Text><br/> 0290 <Action>setflag</Action><Normal Text> </Normal Text><String>"flagvar"</String><Normal Text> </Normal Text><String>"</String><Special Character>\\</Special Character><String>Flagged"</String><Normal Text>;</Normal Text><br/> 0291 <Action>addflag</Action><Normal Text> </Normal Text><String>"flagvar"</String><Normal Text> </Normal Text><String>"</String><Special Character>\\</Special Character><String>Deleted"</String><Normal Text>;</Normal Text><br/> 0292 <Action>addflag</Action><Normal Text> </Normal Text><String>"flagvar"</String><Normal Text> [</Normal Text><String>"</String><Special Character>\\</Special Character><String>Deleted"</String><Normal Text>, </Normal Text><String>"</String><Special Character>\\</Special Character><String>Answered"</String><Normal Text>];</Normal Text><br/> 0293 <Action>removeflag</Action><Normal Text> </Normal Text><String>"flagvar"</String><Normal Text> </Normal Text><String>"$MDNRequired"</String><Normal Text>;</Normal Text><br/> 0294 <Test>hasflag</Test><Normal Text> </Normal Text><Match Type>:contains</Match Type><Normal Text> </Normal Text><String>"MyVar"</String><Normal Text> </Normal Text><String>"Junk"</String><br/> 0295 <Test>hasflag</Test><Normal Text> </Normal Text><Match Type>:contains</Match Type><Normal Text> </Normal Text><String>"</String><Variable>${MyVar}</Variable><String>"</String><Normal Text> [</Normal Text><String>"label"</String><Normal Text>, </Normal Text><String>"forward"</String><Normal Text>]</Normal Text><br/> 0296 <Test>hasflag</Test><Normal Text> </Normal Text><Match Type>:count</Match Type><Normal Text> </Normal Text><String>"ge"</String><Normal Text> </Normal Text><Argument>:comparator</Argument><Normal Text> </Normal Text><String>"i;ascii-numeric"</String><Normal Text> </Normal Text><String>"MyFlags"</String><Normal Text> </Normal Text><Decimal>2</Decimal><br/> 0297 <Action>fileinto</Action><Normal Text> </Normal Text><Argument>:flags</Argument><Normal Text> </Normal Text><String>"</String><Special Character>\\</Special Character><String>Deleted"</String><Normal Text> </Normal Text><String>"INBOX.bla"</String><Normal Text>;</Normal Text><br/> 0298 <Normal Text></Normal Text><br/> 0299 <Comment># Include RFC6609</Comment><br/> 0300 <Action>include</Action><Normal Text> </Normal Text><Argument>:personal</Argument><Normal Text> </Normal Text><String>"always_allow"</String><Normal Text>;</Normal Text><br/> 0301 <Action>include</Action><Normal Text> </Normal Text><Argument>:global</Argument><Normal Text> </Normal Text><String>"spam_tests"</String><Normal Text>;</Normal Text><br/> 0302 <Action>return</Action><Normal Text>;</Normal Text><br/> 0303 <Keyword>global</Keyword><Normal Text> </Normal Text><String>"i_am_on_vacation"</String><Normal Text>;</Normal Text><br/> 0304 <Action>set</Action><Normal Text> </Normal Text><String>"global.i_am_on_vacation"</String><Normal Text> </Normal Text><String>"1"</String><Normal Text>;</Normal Text><br/> 0305 <Normal Text></Normal Text><br/> 0306 <Comment># Mailbox RFC5490</Comment><br/> 0307 <Keyword>if</Keyword><Normal Text> </Normal Text><Test>mailboxexists</Test><Normal Text> </Normal Text><String>"bla"</String><Normal Text> {}</Normal Text><br/> 0308 <Action>fileinto</Action><Normal Text> </Normal Text><Argument>:create</Argument><Normal Text> </Normal Text><String>"inbox.bla"</String><Normal Text>;</Normal Text><br/> 0309 <Keyword>if</Keyword><Normal Text> </Normal Text><Test>metadata</Test><Normal Text> </Normal Text><Match Type>:is</Match Type><Normal Text> </Normal Text><String>"INBOX"</String><Normal Text> </Normal Text><String>"/private/vendor/vendor.isode/auto-replies"</String><Normal Text> </Normal Text><String>"on"</String><Normal Text> {}</Normal Text><br/> 0310 <Keyword>if</Keyword><Normal Text> </Normal Text><Test>metadataexists</Test><Normal Text> </Normal Text><String>"INBOX"</String><Normal Text> </Normal Text><String>"/private/vendor/foo"</String><Normal Text> {}</Normal Text><br/> 0311 <Keyword>if</Keyword><Normal Text> </Normal Text><Test>servermetadata</Test><Normal Text> </Normal Text><Match Type>:matches</Match Type><Normal Text> </Normal Text><String>"/private/vendor/vendor.isode/notification-uri"</String><Normal Text> </Normal Text><String>"*"</String><Normal Text> {}</Normal Text><br/> 0312 <Keyword>if</Keyword><Normal Text> </Normal Text><Test>servermetadataexists</Test><Normal Text> </Normal Text><String>"/private/vendor/foo"</String><Normal Text> {}</Normal Text><br/> 0313 <Normal Text></Normal Text><br/> 0314 <Comment># Regexp (draft)</Comment><br/> 0315 <Keyword>if</Keyword><Normal Text> </Normal Text><Test>not</Test><Normal Text> </Normal Text><Test>address</Test><Normal Text> </Normal Text><Match Type>:regex</Match Type><Normal Text> [</Normal Text><String>"to"</String><Normal Text>, </Normal Text><String>"cc"</String><Normal Text>, </Normal Text><String>"bcc"</String><Normal Text>] </Normal Text><String>"me(</String><Special Character>\\</Special Character><String>+.*)?@company</String><Special Character>\\</Special Character><String>.com"</String><Normal Text> {}</Normal Text><br/> 0316 <Normal Text></Normal Text><br/> 0317 <Comment># Relational RFC5231</Comment><br/> 0318 <Keyword>if</Keyword><Normal Text> </Normal Text><Test>address</Test><Normal Text> </Normal Text><Match Type>:count</Match Type><Normal Text> </Normal Text><String>"ge"</String><Normal Text> </Normal Text><Argument>:comparator</Argument><Normal Text> </Normal Text><String>"i;ascii-numeric"</String><Normal Text> [</Normal Text><String>"to"</String><Normal Text>, </Normal Text><String>"cc"</String><Normal Text>] [</Normal Text><String>"3"</String><Normal Text>] {}</Normal Text><br/> 0319 <Keyword>if</Keyword><Normal Text> </Normal Text><Test>header</Test><Normal Text> </Normal Text><Match Type>:value</Match Type><Normal Text> </Normal Text><String>"lt"</String><Normal Text> </Normal Text><Argument>:comparator</Argument><Normal Text> </Normal Text><String>"i;ascii-numeric"</String><Normal Text> [</Normal Text><String>"x-priority"</String><Normal Text>] [</Normal Text><String>"3"</String><Normal Text>] {}</Normal Text><br/> 0320 <Normal Text></Normal Text><br/> 0321 <Comment># Spamtest RFC5235</Comment><br/> 0322 <Keyword>if</Keyword><Normal Text> </Normal Text><Test>spamtest</Test><Normal Text> </Normal Text><Match Type>:value</Match Type><Normal Text> </Normal Text><String>"eq"</String><Normal Text> </Normal Text><Argument>:comparator</Argument><Normal Text> </Normal Text><String>"i;ascii-numeric"</String><Normal Text> </Normal Text><String>"0"</String><Normal Text> {}</Normal Text><br/> 0323 <Keyword>elsif</Keyword><Normal Text> </Normal Text><Test>spamtest</Test><Normal Text> </Normal Text><Match Type>:value</Match Type><Normal Text> </Normal Text><String>"ge"</String><Normal Text> </Normal Text><Argument>:comparator</Argument><Normal Text> </Normal Text><String>"i;ascii-numeric"</String><Normal Text> </Normal Text><String>"3"</String><Normal Text> {}</Normal Text><br/> 0324 <Keyword>elsif</Keyword><Normal Text> </Normal Text><Test>spamtest</Test><Normal Text> </Normal Text><Argument>:percent</Argument><Normal Text> </Normal Text><Match Type>:value</Match Type><Normal Text> </Normal Text><String>"lt"</String><Normal Text> </Normal Text><Argument>:comparator</Argument><Normal Text> </Normal Text><String>"i;ascii-numeric"</String><Normal Text> </Normal Text><String>"37"</String><Normal Text> {}</Normal Text><br/> 0325 <Keyword>if</Keyword><Normal Text> </Normal Text><Test>virustest</Test><Normal Text> </Normal Text><Match Type>:value</Match Type><Normal Text> </Normal Text><String>"eq"</String><Normal Text> </Normal Text><Argument>:comparator</Argument><Normal Text> </Normal Text><String>"i;ascii-numeric"</String><Normal Text> </Normal Text><String>"4"</String><Normal Text> {}</Normal Text><br/> 0326 <Normal Text></Normal Text><br/> 0327 <Comment># Subaddress RFC5233</Comment><br/> 0328 <Keyword>if</Keyword><Normal Text> </Normal Text><Test>envelope</Test><Normal Text> </Normal Text><Argument>:user</Argument><Normal Text> </Normal Text><String>"to"</String><Normal Text> </Normal Text><String>"postmaster"</String><Normal Text> {}</Normal Text><br/> 0329 <Keyword>if</Keyword><Normal Text> </Normal Text><Test>envelope</Test><Normal Text> </Normal Text><Argument>:detail</Argument><Normal Text> </Normal Text><String>"to"</String><Normal Text> </Normal Text><String>"mta-filters"</String><Normal Text> {}</Normal Text><br/> 0330 <Normal Text></Normal Text><br/> 0331 <Comment># Vacation RFC5230</Comment><br/> 0332 <Action>vacation</Action><Normal Text> </Normal Text><String>"I'm out"</String><Normal Text>;</Normal Text><br/> 0333 <Action>vacation</Action><Normal Text> </Normal Text><Argument>:subject</Argument><Normal Text> </Normal Text><String>"Automatic response to: </String><Variable>${1}</Variable><String>"</String><br/> 0334 <Normal Text> </Normal Text><String>"I'm away -- send mail to foo in my absence"</String><Normal Text>;</Normal Text><br/> 0335 <Action>vacation</Action><Normal Text> </Normal Text><Argument>:handle</Argument><Normal Text> </Normal Text><String>"ran-away"</String><Normal Text> </Normal Text><String>"I'm out"</String><Normal Text>;</Normal Text><br/> 0336 <Action>vacation</Action><Normal Text> </Normal Text><Argument>:mime</Argument><Normal Text> </Normal Text><String>text:</String><br/> 0337 <String> Content-Type: multipart/alternative; boundary=foo</String><br/> 0338 <String></String><br/> 0339 <String> --foo</String><br/> 0340 <String></String><br/> 0341 <String> Hello </String><Variable>${sender}</Variable><String>, I'm at the beach relaxing.</String><br/> 0342 <String></String><br/> 0343 <String> --foo</String><br/> 0344 <String> Content-Type: text/html; charset=us-ascii</String><br/> 0345 <String></String><br/> 0346 <String> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"</String><br/> 0347 <String> "http://www.w3.org/TR/REC-html40/strict.dtd"></String><br/> 0348 <String> <HTML><HEAD><TITLE>How to relax</TITLE></String><br/> 0349 <String> <BASE HREF="http://home.example.com/pictures/"></HEAD></String><br/> 0350 <String> <BODY><P>I'm at the <A HREF="beach.gif">beach</A> relaxing.</String><br/> 0351 <String> </BODY></HTML></String><br/> 0352 <String></String><br/> 0353 <String> --foo--</String><br/> 0354 <String>.</String><br/> 0355 <Normal Text>;</Normal Text><br/> 0356 <Action>vacation</Action><Normal Text> </Normal Text><Argument>:days</Argument><Normal Text> </Normal Text><Decimal>23</Decimal><Normal Text> </Normal Text><Argument>:addresses</Argument><Normal Text> [</Normal Text><String>"kde@example.edu"</String><Normal Text>] </Normal Text><String>"I'm away until October 19."</String><Normal Text>;</Normal Text><br/> 0357 <Normal Text></Normal Text><br/> 0358 <Comment># Vacation Seconds RFC6131</Comment><br/> 0359 <Action>vacation</Action><Normal Text> </Normal Text><Argument>:addresses</Argument><Normal Text> [</Normal Text><String>"kde@example.edu"</String><Normal Text>] </Normal Text><Argument>:seconds</Argument><Normal Text> </Normal Text><Decimal>1800</Decimal><br/> 0360 <Normal Text> </Normal Text><String>"I am in a meeting, and do not have access to email."</String><Normal Text>;</Normal Text><br/> 0361 <Normal Text></Normal Text><br/> 0362 <Comment># Variables RFC5229</Comment><br/> 0363 <String>"&%${}!"</String><Normal Text> </Normal Text><Comment># invalid</Comment><br/> 0364 <String>"${doh!}"</String><Normal Text> </Normal Text><Comment>#invalid</Comment><br/> 0365 <String>"</String><Variable>${company}</Variable><String>"</String><br/> 0366 <String>"bla </String><Variable>${var42}</Variable><String> blub"</String><br/> 0367 <String>"</String><Variable>${1}</Variable><String>"</String><br/> 0368 <String>"${BAD</String><Variable>${Company}</Variable><String>"</String><Normal Text> </Normal Text><Comment># second one is the variable</Comment><br/> 0369 <String>"${President, </String><Variable>${Company}</Variable><String> Inc.}"</String><Normal Text> </Normal Text><Comment># inner one is the variable</Comment><br/> 0370 <Action>set</Action><Normal Text> </Normal Text><String>"var"</String><Normal Text> </Normal Text><String>"value"</String><Normal Text>;</Normal Text><br/> 0371 <Action>set</Action><Normal Text> </Normal Text><String>"var2"</String><Normal Text> </Normal Text><String>"</String><Variable>${var}</Variable><String>"</String><Normal Text>;</Normal Text><br/> 0372 <Normal Text></Normal Text><br/> 0373 <Action>set</Action><Normal Text> </Normal Text><String>"a"</String><Normal Text> </Normal Text><String>"juMBlEd lETteRS"</String><Normal Text>;</Normal Text><br/> 0374 <Action>set</Action><Normal Text> </Normal Text><Argument>:length</Argument><Normal Text> </Normal Text><String>"b"</String><Normal Text> </Normal Text><String>"</String><Variable>${a}</Variable><String>"</String><Normal Text>;</Normal Text><br/> 0375 <Action>set</Action><Normal Text> </Normal Text><Argument>:lower</Argument><Normal Text> </Normal Text><String>"b"</String><Normal Text> </Normal Text><String>"</String><Variable>${a}</Variable><String>"</String><Normal Text>;</Normal Text><br/> 0376 <Action>set</Action><Normal Text> </Normal Text><Argument>:upperfirst</Argument><Normal Text> </Normal Text><String>"b"</String><Normal Text> </Normal Text><String>"</String><Variable>${a}</Variable><String>"</String><Normal Text>;</Normal Text><br/> 0377 <Action>set</Action><Normal Text> </Normal Text><Argument>:upperfirst</Argument><Normal Text> </Normal Text><Argument>:lower</Argument><Normal Text> </Normal Text><String>"b"</String><Normal Text> </Normal Text><String>"</String><Variable>${a}</Variable><String>"</String><Normal Text>;</Normal Text><br/> 0378 <Action>set</Action><Normal Text> </Normal Text><Argument>:quotewildcard</Argument><Normal Text> </Normal Text><String>"b"</String><Normal Text> </Normal Text><String>"Rock*"</String><Normal Text>;</Normal Text><br/> 0379 <Action>set</Action><Normal Text> </Normal Text><Argument>:lowerfirst</Argument><Normal Text> </Normal Text><String>"b"</String><Normal Text> </Normal Text><String>"</String><Variable>${a}</Variable><String>"</String><Normal Text>;</Normal Text><br/> 0380 <Normal Text></Normal Text><br/> 0381 <Keyword>if</Keyword><Normal Text> </Normal Text><Test>string</Test><Normal Text> </Normal Text><Match Type>:matches</Match Type><Normal Text> </Normal Text><String>" </String><Variable>${state}</Variable><String> "</String><Normal Text> </Normal Text><String>"* pending *"</String><Normal Text> {}</Normal Text><br/> 0382 <Normal Text></Normal Text><br/> 0383 <Comment># Dovecot debug extension</Comment><br/> 0384 <Keyword>require</Keyword><Normal Text> </Normal Text><String>"vnd.dovecot.debug"</String><Normal Text>;</Normal Text><br/> 0385 <Keyword>if</Keyword><Normal Text> </Normal Text><Test>header</Test><Normal Text> </Normal Text><Match Type>:contains</Match Type><Normal Text> </Normal Text><String>"subject"</String><Normal Text> </Normal Text><String>"hello"</String><Normal Text> {</Normal Text><br/> 0386 <Normal Text> </Normal Text><Action>debug_log</Action><Normal Text> </Normal Text><String>"Subject header contains hello!"</String><Normal Text>;</Normal Text><br/> 0387 <Normal Text>}</Normal Text><br/>