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/>