395 lines
44 KiB
HTML
395 lines
44 KiB
HTML
<!DOCTYPE html>
|
|
<html><head>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
|
|
<title>test.sieve</title>
|
|
<meta name="generator" content="KF5::SyntaxHighlighting - Definition (Sieve) - Theme (Breeze Dark)"/>
|
|
</head><body style="background-color:#232629;color:#cfcfc2"><pre>
|
|
<span style="color:#7a7c7d"># Sieve syntax highlighting test</span>
|
|
<span style="color:#7a7c7d"># see RFC 5228</span>
|
|
|
|
<span style="color:#7a7c7d"># comments §2.3.</span>
|
|
|
|
<span style="color:#7a7c7d"># Single line with alerts </span><span style="color:#ca9219;background-color:#451e1a;font-weight:bold">TODO</span><span style="color:#7a7c7d"> </span><span style="color:#81ca2d;background-color:#4d1f24;font-weight:bold">###</span>
|
|
<span style="color:#7a7c7d">/*</span>
|
|
<span style="color:#7a7c7d"> Multiline comment with alerts </span><span style="color:#ca9219;background-color:#451e1a;font-weight:bold">FIXME</span>
|
|
<span style="color:#7a7c7d"> this also should be folding region</span>
|
|
<span style="color:#7a7c7d"> */</span>
|
|
|
|
<span style="color:#7a7c7d"># literal data §2.4.</span>
|
|
<span style="color:#7a7c7d"># numbers §2.4.1.</span>
|
|
<span style="color:#f67400">42</span>
|
|
<span style="color:#f67400">100K</span>
|
|
<span style="color:#f67400">10M</span>
|
|
<span style="color:#f67400">3G</span>
|
|
|
|
<span style="color:#7a7c7d"># strings §2.4.2.</span>
|
|
<span style="color:#f44f4f">"string"</span>
|
|
<span style="color:#f44f4f">"string</span><span style="color:#3daee9">\n</span><span style="color:#f44f4f">with</span><span style="color:#3daee9">\"</span><span style="color:#f44f4f">special chars"</span>
|
|
<span style="color:#7a7c7d"># not a string</span>
|
|
<span style="color:#f44f4f">"multi \</span>
|
|
<span style="color:#f44f4f"> line \</span>
|
|
<span style="color:#f44f4f"> #with</span><span style="color:#3daee9">\a</span><span style="color:#f44f4f"> \</span>
|
|
<span style="color:#f44f4f"> continuation"</span>
|
|
<span style="color:#7a7c7d"># not a string</span>
|
|
<span style="color:#f44f4f">text:</span>
|
|
<span style="color:#f44f4f">Multiline</span>
|
|
<span style="color:#f44f4f">string</span><span style="color:#3daee9">\"</span><span style="color:#f44f4f"> "with quotes"</span>
|
|
<span style="color:#f44f4f">or # comments</span>
|
|
<span style="color:#f44f4f">this should also be a folding region</span>
|
|
<span style="color:#f44f4f">.dot</span>
|
|
<span style="color:#f44f4f">..dot</span>
|
|
<span style="color:#f44f4f">dotstuffed dot:</span>
|
|
<span style="color:#f44f4f">..</span>
|
|
<span style="color:#f44f4f">ending with a single .</span>
|
|
<span style="color:#f44f4f">.</span>
|
|
|
|
<span style="color:#7a7c7d"># encoded characters §2.4.2.4.</span>
|
|
<span style="color:#7a7c7d"># valid</span>
|
|
<span style="color:#f44f4f">"$</span><span style="color:#3daee9">${hex:24 24}</span><span style="color:#f44f4f">"</span>
|
|
<span style="color:#f44f4f">"</span><span style="color:#3daee9">${unicode:40}</span><span style="color:#f44f4f">"</span>
|
|
<span style="color:#f44f4f">"$</span><span style="color:#3daee9">${hex:40}</span><span style="color:#f44f4f">"</span>
|
|
<span style="color:#f44f4f">"</span><span style="color:#3daee9">${hex: da }</span><span style="color:#f44f4f">"</span>
|
|
<span style="color:#f44f4f">"</span><span style="color:#3daee9">${hex:FE }</span><span style="color:#f44f4f">"</span>
|
|
<span style="color:#f44f4f">"</span><span style="color:#3daee9">${HEX: 40}</span><span style="color:#f44f4f">"</span>
|
|
<span style="color:#f44f4f">"</span><span style="color:#3daee9">${unicode:40}</span><span style="color:#f44f4f">"</span>
|
|
<span style="color:#f44f4f">"</span><span style="color:#3daee9">${UNICODE:40}</span><span style="color:#f44f4f">"</span>
|
|
<span style="color:#f44f4f">"</span><span style="color:#3daee9">${UnICoDE:0000040}</span><span style="color:#f44f4f">"</span>
|
|
<span style="color:#f44f4f">"</span><span style="color:#3daee9">${Unicode:ff}</span><span style="color:#f44f4f">"</span>
|
|
<span style="color:#7a7c7d">#invalid</span>
|
|
<span style="color:#f44f4f">"${hex:40"</span>
|
|
<span style="color:#f44f4f">"${hex:4</span><span style="color:#3daee9">${hex:30}</span><span style="color:#f44f4f">}"</span>
|
|
<span style="color:#f44f4f">"${ unicode:40}"</span>
|
|
<span style="color:#f44f4f">"${Unicode:Cool}"</span>
|
|
<span style="color:#7a7c7d"># semantic errors, syntactically correct</span>
|
|
<span style="color:#f44f4f">"</span><span style="color:#3daee9">${hex:400}</span><span style="color:#f44f4f">"</span>
|
|
<span style="color:#f44f4f">"</span><span style="color:#3daee9">${unicode:200000}</span><span style="color:#f44f4f">"</span>
|
|
<span style="color:#f44f4f">"</span><span style="color:#3daee9">${Unicode:DF01}</span><span style="color:#f44f4f">"</span>
|
|
|
|
<span style="color:#7a7c7d"># test lists §2.5.1</span>
|
|
<span style="font-weight:bold">if</span> <span style="color:#7f8c8d">anyof</span> (<span style="color:#7f8c8d">not</span> <span style="color:#7f8c8d">exists</span> [<span style="color:#f44f4f">"From"</span>, <span style="color:#f44f4f">"Date"</span>],
|
|
<span style="color:#7f8c8d">header</span> <span style="color:#0099ff;font-weight:bold">:contains</span> <span style="color:#f44f4f">"from"</span> <span style="color:#f44f4f">"fool@example.com"</span>) {
|
|
<span style="color:#8e44ad">discard</span>;
|
|
}
|
|
<span style="font-weight:bold">if</span> <span style="color:#7f8c8d">allof</span> (<span style="color:#7f8c8d">not</span> <span style="color:#7f8c8d">exists</span> [<span style="color:#f44f4f">"From"</span>, <span style="color:#f44f4f">"Date"</span>],
|
|
<span style="color:#7f8c8d">header</span> <span style="color:#0099ff;font-weight:bold">:contains</span> <span style="color:#f44f4f">"from"</span> <span style="color:#f44f4f">"fool@example.com"</span>) {
|
|
<span style="color:#8e44ad">discard</span>;
|
|
}
|
|
|
|
<span style="color:#7a7c7d"># match types §2.7.1.</span>
|
|
<span style="color:#0099ff;font-weight:bold">:contains</span>
|
|
<span style="color:#0099ff;font-weight:bold">:matches</span>
|
|
<span style="color:#0099ff;font-weight:bold">:is</span>
|
|
|
|
<span style="color:#7a7c7d"># comparators §2.7.3.</span>
|
|
<span style="font-weight:bold">if</span> <span style="color:#7f8c8d">header</span> <span style="color:#0099ff;font-weight:bold">:contains</span> <span style="color:#27ae60">:comparator</span> <span style="color:#f44f4f">"i;octet"</span> <span style="color:#f44f4f">"Subject"</span> <span style="color:#f44f4f">"MAKE MONEY FAST"</span> {
|
|
<span style="color:#8e44ad">discard</span>;
|
|
}
|
|
|
|
<span style="color:#7a7c7d"># comparison against addresses §2.7.4.</span>
|
|
<span style="color:#27ae60">:localpart</span>
|
|
<span style="color:#27ae60">:domain</span>
|
|
<span style="color:#27ae60">:all</span>
|
|
|
|
<span style="color:#7a7c7d"># commands §2.9.</span>
|
|
<span style="color:#8e44ad">keep</span>;
|
|
<span style="color:#8e44ad">fileinto</span> <span style="color:#f44f4f">"inbox.bla"</span>;
|
|
<span style="color:#8e44ad">redirect</span> <span style="color:#f44f4f">"test@kde.org"</span>;
|
|
<span style="color:#8e44ad">discard</span>;
|
|
|
|
<span style="color:#7a7c7d"># control if §3.1.</span>
|
|
<span style="color:#7a7c7d"># this also should create folding regions</span>
|
|
<span style="font-weight:bold">if</span> <span style="color:#7f8c8d">header</span> <span style="color:#0099ff;font-weight:bold">:contains</span> <span style="color:#f44f4f">"from"</span> <span style="color:#f44f4f">"foo"</span> {
|
|
<span style="color:#8e44ad">discard</span>;
|
|
} <span style="font-weight:bold">elsif</span> <span style="color:#7f8c8d">header</span> <span style="color:#0099ff;font-weight:bold">:contains</span> [<span style="color:#f44f4f">"subject"</span>] [<span style="color:#f44f4f">"$$$"</span>] {
|
|
<span style="color:#8e44ad">discard</span>;
|
|
} <span style="font-weight:bold">else</span> {
|
|
<span style="color:#8e44ad">fileinto</span> <span style="color:#f44f4f">"INBOX"</span>;
|
|
}
|
|
|
|
<span style="color:#7a7c7d"># control require §3.2.</span>
|
|
<span style="font-weight:bold">require</span> <span style="color:#f44f4f">"fileinto"</span>;
|
|
<span style="font-weight:bold">require</span> [<span style="color:#f44f4f">"vacation"</span>, <span style="color:#f44f4f">"imapflags"</span>];
|
|
|
|
<span style="color:#7a7c7d"># control stop §3.3.</span>
|
|
<span style="color:#8e44ad">stop</span>;
|
|
|
|
<span style="color:#7a7c7d"># test commands §5.</span>
|
|
<span style="color:#7f8c8d">address</span>
|
|
<span style="color:#7f8c8d">allof</span>
|
|
<span style="color:#7f8c8d">anyof</span>
|
|
<span style="color:#7f8c8d">exists</span>
|
|
<span style="color:#7f8c8d">false</span>
|
|
<span style="color:#7f8c8d">header</span>
|
|
<span style="color:#7f8c8d">not</span>
|
|
<span style="color:#7f8c8d">size</span>
|
|
<span style="color:#7f8c8d">true</span>
|
|
|
|
<span style="color:#7a7c7d"># test address §5.1.</span>
|
|
<span style="font-weight:bold">if</span> <span style="color:#7f8c8d">address</span> <span style="color:#0099ff;font-weight:bold">:is</span> <span style="color:#27ae60">:all</span> <span style="color:#f44f4f">"from"</span> <span style="color:#f44f4f">"kde@example.com"</span> {
|
|
<span style="color:#8e44ad">discard</span>;
|
|
} <span style="font-weight:bold">elsif</span> <span style="color:#7f8c8d">address</span> <span style="color:#27ae60">:domain</span> <span style="color:#0099ff;font-weight:bold">:is</span> [<span style="color:#f44f4f">"From"</span>, <span style="color:#f44f4f">"To"</span>] <span style="color:#f44f4f">"example.com"</span> { <span style="color:#7a7c7d"># comment</span>
|
|
<span style="color:#8e44ad">keep</span>; <span style="color:#7a7c7d"># comment</span>
|
|
}
|
|
|
|
<span style="color:#7a7c7d"># test envelope §5.4.</span>
|
|
<span style="font-weight:bold">if</span> <span style="color:#7f8c8d">envelope</span> <span style="color:#27ae60">:all</span> <span style="color:#0099ff;font-weight:bold">:is</span> <span style="color:#f44f4f">"from"</span> <span style="color:#f44f4f">"kde@example.com"</span> {
|
|
<span style="color:#8e44ad">discard</span>;
|
|
}
|
|
|
|
<span style="color:#7a7c7d"># test exists §5.5.</span>
|
|
<span style="font-weight:bold">if</span> <span style="color:#7f8c8d">not</span> <span style="color:#7f8c8d">exists</span> [<span style="color:#f44f4f">"From"</span>,<span style="color:#f44f4f">"Date"</span>] {
|
|
<span style="color:#8e44ad">discard</span>;
|
|
}
|
|
|
|
<span style="color:#7a7c7d"># test header §5.7.</span>
|
|
<span style="color:#7f8c8d">not</span> <span style="color:#7f8c8d">header</span> <span style="color:#0099ff;font-weight:bold">:matches</span> <span style="color:#f44f4f">"Cc"</span> <span style="color:#f44f4f">"?*"</span>
|
|
|
|
<span style="color:#7a7c7d"># test size §5.9.</span>
|
|
<span style="font-weight:bold">if</span> <span style="color:#7f8c8d">size</span> <span style="color:#27ae60">:over</span> <span style="color:#f67400">500K</span> { <span style="color:#8e44ad">discard</span>; }
|
|
<span style="font-weight:bold">if</span> <span style="color:#7f8c8d">size</span> <span style="color:#27ae60">:under</span> <span style="color:#f67400">1M</span> { <span style="color:#8e44ad">keep</span>; } <span style="font-weight:bold">else</span> { <span style="color:#8e44ad">discard</span>; }
|
|
|
|
|
|
<span style="color:#7a7c7d">/*</span>
|
|
<span style="color:#7a7c7d"> * Extensions</span>
|
|
<span style="color:#7a7c7d"> * see https://www.iana.org/assignments/sieve-extensions/sieve-extensions.xhtml</span>
|
|
<span style="color:#7a7c7d"> */</span>
|
|
|
|
<span style="color:#7a7c7d"># Body RFC5173</span>
|
|
<span style="color:#27ae60">:raw</span>
|
|
<span style="color:#27ae60">:content</span>
|
|
<span style="color:#27ae60">:text</span>
|
|
<span style="font-weight:bold">if</span> <span style="color:#7f8c8d">body</span> <span style="color:#27ae60">:raw</span> <span style="color:#0099ff;font-weight:bold">:contains</span> <span style="color:#f44f4f">"MAKE MONEY FAST"</span> {
|
|
<span style="color:#8e44ad">discard</span>;
|
|
}
|
|
<span style="font-weight:bold">if</span> <span style="color:#7f8c8d">body</span> <span style="color:#27ae60">:content</span> <span style="color:#f44f4f">"text"</span> <span style="color:#0099ff;font-weight:bold">:contains</span> [<span style="color:#f44f4f">"bla"</span>, <span style="color:#f44f4f">"blub"</span>] {
|
|
<span style="color:#8e44ad">fileinto</span> <span style="color:#f44f4f">"inbox.foo"</span>;
|
|
}
|
|
|
|
<span style="color:#7a7c7d"># Convert RFC6558</span>
|
|
<span style="font-weight:bold">require</span> [<span style="color:#f44f4f">"convert"</span>];
|
|
<span style="color:#8e44ad">convert</span> <span style="color:#f44f4f">"image/tiff"</span> <span style="color:#f44f4f">"image/jpeg"</span> [<span style="color:#f44f4f">"pix-x=320"</span>,<span style="color:#f44f4f">"pix-y=240"</span>];
|
|
|
|
<span style="color:#7a7c7d"># Copy RFC3894</span>
|
|
<span style="font-weight:bold">require</span> [<span style="color:#f44f4f">"copy"</span>, <span style="color:#f44f4f">"fileinto"</span>];
|
|
<span style="color:#8e44ad">fileinto</span> <span style="color:#27ae60">:copy</span> <span style="color:#f44f4f">"incoming"</span>;
|
|
|
|
<span style="color:#7a7c7d"># Date RFC5260</span>
|
|
<span style="font-weight:bold">require</span> [<span style="color:#f44f4f">"date"</span>, <span style="color:#f44f4f">"relational"</span>, <span style="color:#f44f4f">"fileinto"</span>];
|
|
<span style="font-weight:bold">if</span> <span style="color:#7f8c8d">allof</span>(<span style="color:#7f8c8d">header</span> <span style="color:#0099ff;font-weight:bold">:is</span> <span style="color:#f44f4f">"from"</span> <span style="color:#f44f4f">"boss@example.com"</span>,
|
|
<span style="color:#7f8c8d">date</span> <span style="color:#0099ff;font-weight:bold">:value</span> <span style="color:#f44f4f">"ge"</span> <span style="color:#27ae60">:originalzone</span> <span style="color:#f44f4f">"date"</span> <span style="color:#f44f4f">"hour"</span> <span style="color:#f44f4f">"09"</span>,
|
|
<span style="color:#7f8c8d">date</span> <span style="color:#0099ff;font-weight:bold">:value</span> <span style="color:#f44f4f">"lt"</span> <span style="color:#27ae60">:originalzone</span> <span style="color:#f44f4f">"date"</span> <span style="color:#f44f4f">"hour"</span> <span style="color:#f44f4f">"17"</span>)
|
|
{ <span style="color:#8e44ad">fileinto</span> <span style="color:#f44f4f">"urgent"</span>; }
|
|
<span style="font-weight:bold">if</span> <span style="color:#7f8c8d">anyof</span>(<span style="color:#7f8c8d">date</span> <span style="color:#0099ff;font-weight:bold">:is</span> <span style="color:#f44f4f">"received"</span> <span style="color:#f44f4f">"weekday"</span> <span style="color:#f44f4f">"0"</span>,
|
|
<span style="color:#7f8c8d">date</span> <span style="color:#0099ff;font-weight:bold">:is</span> <span style="color:#f44f4f">"received"</span> <span style="color:#f44f4f">"weekday"</span> <span style="color:#f44f4f">"6"</span>)
|
|
{ <span style="color:#8e44ad">fileinto</span> <span style="color:#f44f4f">"weekend"</span>; }
|
|
<span style="font-weight:bold">if</span> <span style="color:#7f8c8d">anyof</span>(<span style="color:#7f8c8d">currentdate</span> <span style="color:#0099ff;font-weight:bold">:is</span> <span style="color:#f44f4f">"weekday"</span> <span style="color:#f44f4f">"0"</span>,
|
|
<span style="color:#7f8c8d">currentdate</span> <span style="color:#0099ff;font-weight:bold">:is</span> <span style="color:#f44f4f">"weekday"</span> <span style="color:#f44f4f">"6"</span>,
|
|
<span style="color:#7f8c8d">currentdate</span> <span style="color:#0099ff;font-weight:bold">:value</span> <span style="color:#f44f4f">"lt"</span> <span style="color:#f44f4f">"hour"</span> <span style="color:#f44f4f">"09"</span>,
|
|
<span style="color:#7f8c8d">currentdate</span> <span style="color:#0099ff;font-weight:bold">:value</span> <span style="color:#f44f4f">"ge"</span> <span style="color:#f44f4f">"hour"</span> <span style="color:#f44f4f">"17"</span>)
|
|
{ <span style="color:#8e44ad">redirect</span> <span style="color:#f44f4f">"pager@example.com"</span>; }
|
|
<span style="font-weight:bold">if</span> <span style="color:#7f8c8d">allof</span>(<span style="color:#7f8c8d">currentdate</span> <span style="color:#0099ff;font-weight:bold">:value</span> <span style="color:#f44f4f">"ge"</span> <span style="color:#f44f4f">"date"</span> <span style="color:#f44f4f">"2007-06-30"</span>,
|
|
<span style="color:#7f8c8d">currentdate</span> <span style="color:#0099ff;font-weight:bold">:value</span> <span style="color:#f44f4f">"le"</span> <span style="color:#f44f4f">"date"</span> <span style="color:#f44f4f">"2007-07-07"</span>)
|
|
{ <span style="color:#8e44ad">vacation</span> <span style="color:#27ae60">:days</span> <span style="color:#f67400">7</span> <span style="color:#f44f4f">"I'm away during the first week in July."</span>; }
|
|
|
|
<span style="font-weight:bold">require</span> [<span style="color:#f44f4f">"date"</span>, <span style="color:#f44f4f">"variables"</span>, <span style="color:#f44f4f">"fileinto"</span>];
|
|
<span style="font-weight:bold">if</span> <span style="color:#7f8c8d">currentdate</span> <span style="color:#0099ff;font-weight:bold">:matches</span> <span style="color:#f44f4f">"month"</span> <span style="color:#f44f4f">"*"</span> { <span style="color:#8e44ad">set</span> <span style="color:#f44f4f">"month"</span> <span style="color:#f44f4f">"</span><span style="color:#27aeae">${1}</span><span style="color:#f44f4f">"</span>; }
|
|
<span style="font-weight:bold">if</span> <span style="color:#7f8c8d">currentdate</span> <span style="color:#0099ff;font-weight:bold">:matches</span> <span style="color:#f44f4f">"year"</span> <span style="color:#f44f4f">"*"</span> { <span style="color:#8e44ad">set</span> <span style="color:#f44f4f">"year"</span> <span style="color:#f44f4f">"</span><span style="color:#27aeae">${1}</span><span style="color:#f44f4f">"</span>; }
|
|
<span style="color:#8e44ad">fileinto</span> <span style="color:#f44f4f">"</span><span style="color:#27aeae">${month}</span><span style="color:#f44f4f">-</span><span style="color:#27aeae">${year}</span><span style="color:#f44f4f">"</span>;
|
|
|
|
<span style="font-weight:bold">require</span> [<span style="color:#f44f4f">"variables"</span>, <span style="color:#f44f4f">"date"</span>, <span style="color:#f44f4f">"editheader"</span>];
|
|
<span style="font-weight:bold">if</span> <span style="color:#7f8c8d">currentdate</span> <span style="color:#0099ff;font-weight:bold">:matches</span> <span style="color:#f44f4f">"std11"</span> <span style="color:#f44f4f">"*"</span> {<span style="color:#8e44ad">addheader</span> <span style="color:#f44f4f">"Processing-date"</span> <span style="color:#f44f4f">"</span><span style="color:#27aeae">${0}</span><span style="color:#f44f4f">"</span>;}
|
|
|
|
<span style="font-weight:bold">require</span> [<span style="color:#f44f4f">"date"</span>, <span style="color:#f44f4f">"relational"</span>, <span style="color:#f44f4f">"index"</span>];
|
|
<span style="font-weight:bold">if</span> <span style="color:#7f8c8d">date</span> <span style="color:#0099ff;font-weight:bold">:value</span> <span style="color:#f44f4f">"gt"</span> <span style="color:#27ae60">:index</span> <span style="color:#f67400">2</span> <span style="color:#27ae60">:zone</span> <span style="color:#f44f4f">"-0500"</span> <span style="color:#f44f4f">"received"</span> <span style="color:#f44f4f">"iso8601"</span> <span style="color:#f44f4f">"2007-02-26T09:00:00-05:00"</span>
|
|
{ <span style="color:#8e44ad">redirect</span> <span style="color:#f44f4f">"aftercutoff@example.org"</span>; }
|
|
|
|
<span style="font-weight:bold">if</span> <span style="color:#7f8c8d">header</span> <span style="color:#27ae60">:index</span> <span style="color:#f67400">1</span> <span style="color:#0099ff;font-weight:bold">:matches</span> <span style="color:#f44f4f">"received"</span> <span style="color:#f44f4f">"*(* [*.*.*.*])*"</span> {}
|
|
|
|
<span style="color:#7a7c7d"># Duplicate RFC7352</span>
|
|
<span style="font-weight:bold">require</span> [<span style="color:#f44f4f">"duplicate"</span>, <span style="color:#f44f4f">"variables"</span>];
|
|
<span style="font-weight:bold">if</span> <span style="color:#7f8c8d">duplicate</span> { <span style="color:#8e44ad">discard</span>; }
|
|
<span style="font-weight:bold">if</span> <span style="color:#7f8c8d">duplicate</span> <span style="color:#27ae60">:header</span> <span style="color:#f44f4f">"message-id"</span> { <span style="color:#8e44ad">discard</span>; }
|
|
<span style="font-weight:bold">if</span> <span style="color:#7f8c8d">header</span> <span style="color:#0099ff;font-weight:bold">:matches</span> <span style="color:#f44f4f">"message-id"</span> <span style="color:#f44f4f">"*"</span> {
|
|
<span style="font-weight:bold">if</span> <span style="color:#7f8c8d">duplicate</span> <span style="color:#27ae60">:uniqueid</span> <span style="color:#f44f4f">"</span><span style="color:#27aeae">${0}</span><span style="color:#f44f4f">"</span> { <span style="color:#8e44ad">discard</span>; }
|
|
}
|
|
|
|
<span style="color:#7a7c7d"># Editheader RFC5293</span>
|
|
<span style="color:#8e44ad">addheader</span> <span style="color:#f44f4f">"X-Hello"</span> <span style="color:#f44f4f">"World"</span>;
|
|
<span style="color:#8e44ad">deleteheader</span> <span style="color:#27ae60">:index</span> <span style="color:#f67400">1</span> <span style="color:#f44f4f">"X-Hello"</span>;
|
|
|
|
<span style="color:#7a7c7d"># Enclose RFC5703</span>
|
|
<span style="color:#27ae60">:mime</span>
|
|
<span style="color:#27ae60">:anychild</span>
|
|
<span style="color:#27ae60">:type</span>
|
|
<span style="color:#27ae60">:subtype</span>
|
|
<span style="color:#27ae60">:contenttype</span>
|
|
<span style="color:#27ae60">:param</span>
|
|
<span style="color:#8e44ad">replace</span>
|
|
<span style="color:#8e44ad">enclose</span>
|
|
<span style="color:#8e44ad">extracttext</span>
|
|
<span style="font-weight:bold">if</span> <span style="color:#7f8c8d">header</span> <span style="color:#27ae60">:mime</span> <span style="color:#27ae60">:type</span> <span style="color:#f44f4f">"Content-Type"</span> <span style="color:#f44f4f">"image"</span> {}
|
|
<span style="color:#8e44ad">replace</span> <span style="color:#f44f4f">"Executable attachment removed by user filter"</span>;
|
|
<span style="font-weight:bold">foreverypart</span> {
|
|
<span style="font-weight:bold">if</span> <span style="color:#7f8c8d">header</span> <span style="color:#27ae60">:mime</span> <span style="color:#27ae60">:param</span> <span style="color:#f44f4f">"filename"</span> <span style="color:#0099ff;font-weight:bold">:matches</span> [<span style="color:#f44f4f">"Content-Type"</span>, <span style="color:#f44f4f">"Content-Disposition"</span>]
|
|
[<span style="color:#f44f4f">"*.com"</span>, <span style="color:#f44f4f">"*.exe"</span>, <span style="color:#f44f4f">"*.vbs"</span>, <span style="color:#f44f4f">"*.scr"</span>, <span style="color:#f44f4f">"*.pif"</span>, <span style="color:#f44f4f">"*.hta"</span>, <span style="color:#f44f4f">"*.bat"</span>, <span style="color:#f44f4f">"*.zip"</span> ] {
|
|
<span style="color:#7a7c7d"># these attachment types are executable</span>
|
|
<span style="color:#8e44ad">enclose</span> <span style="color:#27ae60">:subject</span> <span style="color:#f44f4f">"Warning"</span> <span style="color:#f44f4f">text:</span>
|
|
<span style="color:#f44f4f">WARNING! The enclosed message contains executable attachments.</span>
|
|
<span style="color:#f44f4f">These attachment types may contain a computer virus program</span>
|
|
<span style="color:#f44f4f">that can infect your computer and potentially damage your data.</span>
|
|
<span style="color:#f44f4f">.</span>
|
|
;
|
|
<span style="color:#8e44ad">break</span>;
|
|
}
|
|
}
|
|
<span style="color:#8e44ad">extracttext</span> <span style="color:#27ae60">:first</span> <span style="color:#f67400">100</span> <span style="color:#f44f4f">"msgcontent"</span>;
|
|
|
|
<span style="color:#7a7c7d"># Notify RFC5435</span>
|
|
<span style="color:#8e44ad">notify</span> <span style="color:#27ae60">:importance</span> <span style="color:#f44f4f">"1"</span> <span style="color:#27ae60">:message</span> <span style="color:#f44f4f">"This is probably very important"</span> <span style="color:#f44f4f">"mailto:kde@example.com"</span>;
|
|
<span style="color:#8e44ad">notify</span> <span style="color:#27ae60">:message</span> <span style="color:#f44f4f">"</span><span style="color:#27aeae">${from_addr}${env_from}</span><span style="color:#f44f4f">: </span><span style="color:#27aeae">${subject}</span><span style="color:#f44f4f">"</span> <span style="color:#f44f4f">"mailto:kde@example.com"</span>;
|
|
<span style="font-weight:bold">if</span> <span style="color:#7f8c8d">not</span> <span style="color:#7f8c8d">valid_notify_method</span> [<span style="color:#f44f4f">"mailto:"</span>, <span style="color:#f44f4f">"http://gw.example.net/notify?test"</span>] { <span style="color:#8e44ad">stop</span>; }
|
|
<span style="font-weight:bold">if</span> <span style="color:#7f8c8d">notify_method_capability</span> <span style="color:#f44f4f">"xmpp:tim@example.com?message;subject=SIEVE"</span> <span style="color:#f44f4f">"Online"</span> <span style="color:#f44f4f">"yes"</span> {}
|
|
<span style="color:#8e44ad">set</span> <span style="color:#27ae60">:encodeurl</span> <span style="color:#f44f4f">"body_param"</span> <span style="color:#f44f4f">"stuff"</span>;
|
|
|
|
<span style="color:#7a7c7d"># Envelope DSN RFC6009</span>
|
|
<span style="font-weight:bold">if</span> <span style="color:#7f8c8d">envelope</span> <span style="color:#f44f4f">"notify"</span> <span style="color:#f44f4f">"SUCCESS"</span> {}
|
|
<span style="font-weight:bold">if</span> <span style="color:#7f8c8d">allof</span> (<span style="color:#7f8c8d">envelope</span> <span style="color:#f44f4f">"notify"</span> <span style="color:#f44f4f">"FAILURE"</span>, <span style="color:#7f8c8d">envelope</span> <span style="color:#27ae60">:comparator</span> <span style="color:#f44f4f">"i;ascii-numeric"</span> <span style="color:#0099ff;font-weight:bold">:count</span> <span style="color:#f44f4f">"eq"</span> <span style="color:#f44f4f">"notify"</span> <span style="color:#f44f4f">"1"</span>) {}
|
|
<span style="font-weight:bold">if</span> <span style="color:#7f8c8d">envelope</span> <span style="color:#0099ff;font-weight:bold">:matches</span> <span style="color:#f44f4f">"orcpt"</span> <span style="color:#f44f4f">"rfc822;*@example.com"</span> {}
|
|
<span style="font-weight:bold">if</span> <span style="color:#7f8c8d">anyof</span> (<span style="color:#7f8c8d">envelope</span> <span style="color:#0099ff;font-weight:bold">:contains</span> <span style="color:#f44f4f">"bytimerelative"</span> <span style="color:#f44f4f">"-"</span>, <span style="color:#7f8c8d">envelope</span> <span style="color:#0099ff;font-weight:bold">:value</span> <span style="color:#f44f4f">"eq"</span> <span style="color:#27ae60">:comparator</span> <span style="color:#f44f4f">"i;ascii-numeric"</span> <span style="color:#f44f4f">"bytimerelative"</span> <span style="color:#f44f4f">"0"</span>) {}
|
|
<span style="color:#8e44ad">redirect</span> <span style="color:#27ae60">:copy</span> <span style="color:#27ae60">:notify</span> <span style="color:#f44f4f">"NEVER"</span> <span style="color:#f44f4f">"elsewhere@example.com"</span>;
|
|
<span style="color:#8e44ad">redirect</span> <span style="color:#27ae60">:copy</span> <span style="color:#27ae60">:bytimerelative</span> <span style="color:#f67400">600</span> <span style="color:#f44f4f">"cellphone@example.com"</span>;
|
|
<span style="color:#8e44ad">redirect</span> <span style="color:#27ae60">:copy</span> <span style="color:#27ae60">:bytimeabsolute</span> <span style="color:#f44f4f">"</span><span style="color:#27aeae">${date}</span><span style="color:#f44f4f">T20:00:00</span><span style="color:#27aeae">${zone}</span><span style="color:#f44f4f">"</span> <span style="color:#27ae60">:bymode</span> <span style="color:#f44f4f">"return"</span> <span style="color:#f44f4f">"cellphone@example.com"</span>;
|
|
|
|
<span style="color:#7a7c7d"># Environment RFC5183</span>
|
|
<span style="font-weight:bold">if</span> <span style="color:#7f8c8d">environment</span> <span style="color:#0099ff;font-weight:bold">:contains</span> <span style="color:#f44f4f">"item"</span> <span style="color:#f44f4f">""</span> {}
|
|
|
|
<span style="color:#7a7c7d"># Reject RFC5429</span>
|
|
<span style="color:#8e44ad">ereject</span> <span style="color:#f44f4f">"I no longer accept mail from this address"</span>;
|
|
<span style="color:#8e44ad">reject</span> <span style="color:#f44f4f">text:</span>
|
|
<span style="color:#f44f4f">Your message is too big. If you want to send me a big attachment,</span>
|
|
<span style="color:#f44f4f">put it on a public web site and send me a URL.</span>
|
|
<span style="color:#f44f4f">.</span>
|
|
;
|
|
|
|
<span style="color:#7a7c7d"># External Lists RFC6134</span>
|
|
<span style="font-weight:bold">if</span> <span style="color:#7f8c8d">envelope</span> <span style="color:#27ae60">:list</span> <span style="color:#f44f4f">"from"</span> <span style="color:#f44f4f">":addrbook:default"</span> {}
|
|
<span style="font-weight:bold">if</span> <span style="color:#7f8c8d">currentdate</span> <span style="color:#27ae60">:list</span> <span style="color:#f44f4f">"date"</span> <span style="color:#f44f4f">"tag:example.com,2011-01-01:localHolidays"</span> {}
|
|
<span style="font-weight:bold">if</span> <span style="color:#7f8c8d">allof</span> (<span style="color:#7f8c8d">envelope</span> <span style="color:#27ae60">:detail</span> <span style="color:#f44f4f">"to"</span> <span style="color:#f44f4f">"mylist"</span>, <span style="color:#7f8c8d">header</span> <span style="color:#27ae60">:list</span> <span style="color:#f44f4f">"from"</span> <span style="color:#f44f4f">"tag:example.com,2010-05-28:mylist"</span>) {
|
|
<span style="color:#8e44ad">redirect</span> <span style="color:#27ae60">:list</span> <span style="color:#f44f4f">"tag:example.com,2010-05-28:mylist"</span>;
|
|
}
|
|
<span style="font-weight:bold">if</span> <span style="color:#7f8c8d">string</span> <span style="color:#27ae60">:list</span> <span style="color:#f44f4f">"</span><span style="color:#27aeae">${ip}</span><span style="color:#f44f4f">"</span> <span style="color:#f44f4f">"tag:example.com,2011-04-10:DisallowedIPs"</span> {}
|
|
<span style="font-weight:bold">if</span> <span style="color:#7f8c8d">header</span> <span style="color:#27ae60">:mime</span> <span style="color:#27ae60">:param</span> <span style="color:#f44f4f">"filename"</span> <span style="color:#27ae60">:list</span> [<span style="color:#f44f4f">"Content-Type"</span>, <span style="color:#f44f4f">"Content-Disposition"</span>] <span style="color:#f44f4f">"tag:example.com,2011-04-10:BadFileNameExts"</span> {}
|
|
|
|
<span style="color:#7a7c7d"># ihave RFC5463</span>
|
|
<span style="font-weight:bold">if</span> <span style="color:#7f8c8d">ihave</span> <span style="color:#f44f4f">"fileinto"</span> {}
|
|
<span style="color:#8e44ad">error</span> <span style="color:#f44f4f">"failed!"</span>;
|
|
|
|
<span style="color:#7a7c7d"># IMAP Sieve RFC6785</span>
|
|
<span style="font-weight:bold">if</span> <span style="color:#7f8c8d">anyof</span> (<span style="color:#7f8c8d">environment</span> <span style="color:#0099ff;font-weight:bold">:is</span> <span style="color:#f44f4f">"imap.cause"</span> <span style="color:#f44f4f">"APPEND"</span>, <span style="color:#7f8c8d">environment</span> <span style="color:#0099ff;font-weight:bold">:is</span> <span style="color:#f44f4f">"imap.cause"</span> <span style="color:#f44f4f">"COPY"</span>) {
|
|
<span style="font-weight:bold">if</span> <span style="color:#7f8c8d">environment</span> <span style="color:#0099ff;font-weight:bold">:is</span> <span style="color:#f44f4f">"imap.mailbox"</span> <span style="color:#f44f4f">"ActionItems"</span> {
|
|
<span style="color:#8e44ad">redirect</span> <span style="color:#27ae60">:copy</span> <span style="color:#f44f4f">"actionitems@example.com"</span>;
|
|
}
|
|
}
|
|
|
|
<span style="color:#7a7c7d"># IMAP4 Flags RFC5232</span>
|
|
<span style="color:#8e44ad">setflag</span> <span style="color:#f44f4f">"</span><span style="color:#3daee9">\\</span><span style="color:#f44f4f">Deleted"</span>;
|
|
<span style="color:#8e44ad">setflag</span> <span style="color:#f44f4f">"flagvar"</span> <span style="color:#f44f4f">"</span><span style="color:#3daee9">\\</span><span style="color:#f44f4f">Flagged"</span>;
|
|
<span style="color:#8e44ad">addflag</span> <span style="color:#f44f4f">"flagvar"</span> <span style="color:#f44f4f">"</span><span style="color:#3daee9">\\</span><span style="color:#f44f4f">Deleted"</span>;
|
|
<span style="color:#8e44ad">addflag</span> <span style="color:#f44f4f">"flagvar"</span> [<span style="color:#f44f4f">"</span><span style="color:#3daee9">\\</span><span style="color:#f44f4f">Deleted"</span>, <span style="color:#f44f4f">"</span><span style="color:#3daee9">\\</span><span style="color:#f44f4f">Answered"</span>];
|
|
<span style="color:#8e44ad">removeflag</span> <span style="color:#f44f4f">"flagvar"</span> <span style="color:#f44f4f">"$MDNRequired"</span>;
|
|
<span style="color:#7f8c8d">hasflag</span> <span style="color:#0099ff;font-weight:bold">:contains</span> <span style="color:#f44f4f">"MyVar"</span> <span style="color:#f44f4f">"Junk"</span>
|
|
<span style="color:#7f8c8d">hasflag</span> <span style="color:#0099ff;font-weight:bold">:contains</span> <span style="color:#f44f4f">"</span><span style="color:#27aeae">${MyVar}</span><span style="color:#f44f4f">"</span> [<span style="color:#f44f4f">"label"</span>, <span style="color:#f44f4f">"forward"</span>]
|
|
<span style="color:#7f8c8d">hasflag</span> <span style="color:#0099ff;font-weight:bold">:count</span> <span style="color:#f44f4f">"ge"</span> <span style="color:#27ae60">:comparator</span> <span style="color:#f44f4f">"i;ascii-numeric"</span> <span style="color:#f44f4f">"MyFlags"</span> <span style="color:#f67400">2</span>
|
|
<span style="color:#8e44ad">fileinto</span> <span style="color:#27ae60">:flags</span> <span style="color:#f44f4f">"</span><span style="color:#3daee9">\\</span><span style="color:#f44f4f">Deleted"</span> <span style="color:#f44f4f">"INBOX.bla"</span>;
|
|
|
|
<span style="color:#7a7c7d"># Include RFC6609</span>
|
|
<span style="color:#8e44ad">include</span> <span style="color:#27ae60">:personal</span> <span style="color:#f44f4f">"always_allow"</span>;
|
|
<span style="color:#8e44ad">include</span> <span style="color:#27ae60">:global</span> <span style="color:#f44f4f">"spam_tests"</span>;
|
|
<span style="color:#8e44ad">return</span>;
|
|
<span style="font-weight:bold">global</span> <span style="color:#f44f4f">"i_am_on_vacation"</span>;
|
|
<span style="color:#8e44ad">set</span> <span style="color:#f44f4f">"global.i_am_on_vacation"</span> <span style="color:#f44f4f">"1"</span>;
|
|
|
|
<span style="color:#7a7c7d"># Mailbox RFC5490</span>
|
|
<span style="font-weight:bold">if</span> <span style="color:#7f8c8d">mailboxexists</span> <span style="color:#f44f4f">"bla"</span> {}
|
|
<span style="color:#8e44ad">fileinto</span> <span style="color:#27ae60">:create</span> <span style="color:#f44f4f">"inbox.bla"</span>;
|
|
<span style="font-weight:bold">if</span> <span style="color:#7f8c8d">metadata</span> <span style="color:#0099ff;font-weight:bold">:is</span> <span style="color:#f44f4f">"INBOX"</span> <span style="color:#f44f4f">"/private/vendor/vendor.isode/auto-replies"</span> <span style="color:#f44f4f">"on"</span> {}
|
|
<span style="font-weight:bold">if</span> <span style="color:#7f8c8d">metadataexists</span> <span style="color:#f44f4f">"INBOX"</span> <span style="color:#f44f4f">"/private/vendor/foo"</span> {}
|
|
<span style="font-weight:bold">if</span> <span style="color:#7f8c8d">servermetadata</span> <span style="color:#0099ff;font-weight:bold">:matches</span> <span style="color:#f44f4f">"/private/vendor/vendor.isode/notification-uri"</span> <span style="color:#f44f4f">"*"</span> {}
|
|
<span style="font-weight:bold">if</span> <span style="color:#7f8c8d">servermetadataexists</span> <span style="color:#f44f4f">"/private/vendor/foo"</span> {}
|
|
|
|
<span style="color:#7a7c7d"># Regexp (draft)</span>
|
|
<span style="font-weight:bold">if</span> <span style="color:#7f8c8d">not</span> <span style="color:#7f8c8d">address</span> <span style="color:#0099ff;font-weight:bold">:regex</span> [<span style="color:#f44f4f">"to"</span>, <span style="color:#f44f4f">"cc"</span>, <span style="color:#f44f4f">"bcc"</span>] <span style="color:#f44f4f">"me(</span><span style="color:#3daee9">\\</span><span style="color:#f44f4f">+.*)?@company</span><span style="color:#3daee9">\\</span><span style="color:#f44f4f">.com"</span> {}
|
|
|
|
<span style="color:#7a7c7d"># Relational RFC5231</span>
|
|
<span style="font-weight:bold">if</span> <span style="color:#7f8c8d">address</span> <span style="color:#0099ff;font-weight:bold">:count</span> <span style="color:#f44f4f">"ge"</span> <span style="color:#27ae60">:comparator</span> <span style="color:#f44f4f">"i;ascii-numeric"</span> [<span style="color:#f44f4f">"to"</span>, <span style="color:#f44f4f">"cc"</span>] [<span style="color:#f44f4f">"3"</span>] {}
|
|
<span style="font-weight:bold">if</span> <span style="color:#7f8c8d">header</span> <span style="color:#0099ff;font-weight:bold">:value</span> <span style="color:#f44f4f">"lt"</span> <span style="color:#27ae60">:comparator</span> <span style="color:#f44f4f">"i;ascii-numeric"</span> [<span style="color:#f44f4f">"x-priority"</span>] [<span style="color:#f44f4f">"3"</span>] {}
|
|
|
|
<span style="color:#7a7c7d"># Spamtest RFC5235</span>
|
|
<span style="font-weight:bold">if</span> <span style="color:#7f8c8d">spamtest</span> <span style="color:#0099ff;font-weight:bold">:value</span> <span style="color:#f44f4f">"eq"</span> <span style="color:#27ae60">:comparator</span> <span style="color:#f44f4f">"i;ascii-numeric"</span> <span style="color:#f44f4f">"0"</span> {}
|
|
<span style="font-weight:bold">elsif</span> <span style="color:#7f8c8d">spamtest</span> <span style="color:#0099ff;font-weight:bold">:value</span> <span style="color:#f44f4f">"ge"</span> <span style="color:#27ae60">:comparator</span> <span style="color:#f44f4f">"i;ascii-numeric"</span> <span style="color:#f44f4f">"3"</span> {}
|
|
<span style="font-weight:bold">elsif</span> <span style="color:#7f8c8d">spamtest</span> <span style="color:#27ae60">:percent</span> <span style="color:#0099ff;font-weight:bold">:value</span> <span style="color:#f44f4f">"lt"</span> <span style="color:#27ae60">:comparator</span> <span style="color:#f44f4f">"i;ascii-numeric"</span> <span style="color:#f44f4f">"37"</span> {}
|
|
<span style="font-weight:bold">if</span> <span style="color:#7f8c8d">virustest</span> <span style="color:#0099ff;font-weight:bold">:value</span> <span style="color:#f44f4f">"eq"</span> <span style="color:#27ae60">:comparator</span> <span style="color:#f44f4f">"i;ascii-numeric"</span> <span style="color:#f44f4f">"4"</span> {}
|
|
|
|
<span style="color:#7a7c7d"># Subaddress RFC5233</span>
|
|
<span style="font-weight:bold">if</span> <span style="color:#7f8c8d">envelope</span> <span style="color:#27ae60">:user</span> <span style="color:#f44f4f">"to"</span> <span style="color:#f44f4f">"postmaster"</span> {}
|
|
<span style="font-weight:bold">if</span> <span style="color:#7f8c8d">envelope</span> <span style="color:#27ae60">:detail</span> <span style="color:#f44f4f">"to"</span> <span style="color:#f44f4f">"mta-filters"</span> {}
|
|
|
|
<span style="color:#7a7c7d"># Vacation RFC5230</span>
|
|
<span style="color:#8e44ad">vacation</span> <span style="color:#f44f4f">"I'm out"</span>;
|
|
<span style="color:#8e44ad">vacation</span> <span style="color:#27ae60">:subject</span> <span style="color:#f44f4f">"Automatic response to: </span><span style="color:#27aeae">${1}</span><span style="color:#f44f4f">"</span>
|
|
<span style="color:#f44f4f">"I'm away -- send mail to foo in my absence"</span>;
|
|
<span style="color:#8e44ad">vacation</span> <span style="color:#27ae60">:handle</span> <span style="color:#f44f4f">"ran-away"</span> <span style="color:#f44f4f">"I'm out"</span>;
|
|
<span style="color:#8e44ad">vacation</span> <span style="color:#27ae60">:mime</span> <span style="color:#f44f4f">text:</span>
|
|
<span style="color:#f44f4f"> Content-Type: multipart/alternative; boundary=foo</span>
|
|
|
|
<span style="color:#f44f4f"> --foo</span>
|
|
|
|
<span style="color:#f44f4f"> Hello </span><span style="color:#27aeae">${sender}</span><span style="color:#f44f4f">, I'm at the beach relaxing.</span>
|
|
|
|
<span style="color:#f44f4f"> --foo</span>
|
|
<span style="color:#f44f4f"> Content-Type: text/html; charset=us-ascii</span>
|
|
|
|
<span style="color:#f44f4f"> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"</span>
|
|
<span style="color:#f44f4f"> "http://www.w3.org/TR/REC-html40/strict.dtd"></span>
|
|
<span style="color:#f44f4f"> <HTML><HEAD><TITLE>How to relax</TITLE></span>
|
|
<span style="color:#f44f4f"> <BASE HREF="http://home.example.com/pictures/"></HEAD></span>
|
|
<span style="color:#f44f4f"> <BODY><P>I'm at the <A HREF="beach.gif">beach</A> relaxing.</span>
|
|
<span style="color:#f44f4f"> </BODY></HTML></span>
|
|
|
|
<span style="color:#f44f4f"> --foo--</span>
|
|
<span style="color:#f44f4f">.</span>
|
|
;
|
|
<span style="color:#8e44ad">vacation</span> <span style="color:#27ae60">:days</span> <span style="color:#f67400">23</span> <span style="color:#27ae60">:addresses</span> [<span style="color:#f44f4f">"kde@example.edu"</span>] <span style="color:#f44f4f">"I'm away until October 19."</span>;
|
|
|
|
<span style="color:#7a7c7d"># Vacation Seconds RFC6131</span>
|
|
<span style="color:#8e44ad">vacation</span> <span style="color:#27ae60">:addresses</span> [<span style="color:#f44f4f">"kde@example.edu"</span>] <span style="color:#27ae60">:seconds</span> <span style="color:#f67400">1800</span>
|
|
<span style="color:#f44f4f">"I am in a meeting, and do not have access to email."</span>;
|
|
|
|
<span style="color:#7a7c7d"># Variables RFC5229</span>
|
|
<span style="color:#f44f4f">"&%${}!"</span> <span style="color:#7a7c7d"># invalid</span>
|
|
<span style="color:#f44f4f">"${doh!}"</span> <span style="color:#7a7c7d">#invalid</span>
|
|
<span style="color:#f44f4f">"</span><span style="color:#27aeae">${company}</span><span style="color:#f44f4f">"</span>
|
|
<span style="color:#f44f4f">"bla </span><span style="color:#27aeae">${var42}</span><span style="color:#f44f4f"> blub"</span>
|
|
<span style="color:#f44f4f">"</span><span style="color:#27aeae">${1}</span><span style="color:#f44f4f">"</span>
|
|
<span style="color:#f44f4f">"${BAD</span><span style="color:#27aeae">${Company}</span><span style="color:#f44f4f">"</span> <span style="color:#7a7c7d"># second one is the variable</span>
|
|
<span style="color:#f44f4f">"${President, </span><span style="color:#27aeae">${Company}</span><span style="color:#f44f4f"> Inc.}"</span> <span style="color:#7a7c7d"># inner one is the variable</span>
|
|
<span style="color:#8e44ad">set</span> <span style="color:#f44f4f">"var"</span> <span style="color:#f44f4f">"value"</span>;
|
|
<span style="color:#8e44ad">set</span> <span style="color:#f44f4f">"var2"</span> <span style="color:#f44f4f">"</span><span style="color:#27aeae">${var}</span><span style="color:#f44f4f">"</span>;
|
|
|
|
<span style="color:#8e44ad">set</span> <span style="color:#f44f4f">"a"</span> <span style="color:#f44f4f">"juMBlEd lETteRS"</span>;
|
|
<span style="color:#8e44ad">set</span> <span style="color:#27ae60">:length</span> <span style="color:#f44f4f">"b"</span> <span style="color:#f44f4f">"</span><span style="color:#27aeae">${a}</span><span style="color:#f44f4f">"</span>;
|
|
<span style="color:#8e44ad">set</span> <span style="color:#27ae60">:lower</span> <span style="color:#f44f4f">"b"</span> <span style="color:#f44f4f">"</span><span style="color:#27aeae">${a}</span><span style="color:#f44f4f">"</span>;
|
|
<span style="color:#8e44ad">set</span> <span style="color:#27ae60">:upperfirst</span> <span style="color:#f44f4f">"b"</span> <span style="color:#f44f4f">"</span><span style="color:#27aeae">${a}</span><span style="color:#f44f4f">"</span>;
|
|
<span style="color:#8e44ad">set</span> <span style="color:#27ae60">:upperfirst</span> <span style="color:#27ae60">:lower</span> <span style="color:#f44f4f">"b"</span> <span style="color:#f44f4f">"</span><span style="color:#27aeae">${a}</span><span style="color:#f44f4f">"</span>;
|
|
<span style="color:#8e44ad">set</span> <span style="color:#27ae60">:quotewildcard</span> <span style="color:#f44f4f">"b"</span> <span style="color:#f44f4f">"Rock*"</span>;
|
|
<span style="color:#8e44ad">set</span> <span style="color:#27ae60">:lowerfirst</span> <span style="color:#f44f4f">"b"</span> <span style="color:#f44f4f">"</span><span style="color:#27aeae">${a}</span><span style="color:#f44f4f">"</span>;
|
|
|
|
<span style="font-weight:bold">if</span> <span style="color:#7f8c8d">string</span> <span style="color:#0099ff;font-weight:bold">:matches</span> <span style="color:#f44f4f">" </span><span style="color:#27aeae">${state}</span><span style="color:#f44f4f"> "</span> <span style="color:#f44f4f">"* pending *"</span> {}
|
|
|
|
<span style="color:#7a7c7d"># Dovecot debug extension</span>
|
|
<span style="font-weight:bold">require</span> <span style="color:#f44f4f">"vnd.dovecot.debug"</span>;
|
|
<span style="font-weight:bold">if</span> <span style="color:#7f8c8d">header</span> <span style="color:#0099ff;font-weight:bold">:contains</span> <span style="color:#f44f4f">"subject"</span> <span style="color:#f44f4f">"hello"</span> {
|
|
<span style="color:#8e44ad">debug_log</span> <span style="color:#f44f4f">"Subject header contains hello!"</span>;
|
|
}
|
|
</pre></body></html>
|