<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://wiki.pscs.co.uk/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="https://wiki.pscs.co.uk/feed.php">
        <title>PSCS Wiki</title>
        <description></description>
        <link>https://wiki.pscs.co.uk/</link>
        <image rdf:resource="https://wiki.pscs.co.uk/_media/wiki:dokuwiki.svg" />
       <dc:date>2026-05-06T11:40:28+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="https://wiki.pscs.co.uk/reference:lua_smtp_server_script?rev=1746692615&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.pscs.co.uk/reference:lua_pop3_client_script?rev=1692172081&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.pscs.co.uk/reference:outgoing_message_script?rev=1711018194&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.pscs.co.uk/reference:spamrules_statement_ifmatch?rev=1542192349&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.pscs.co.uk/reference:spamrules_db_comparator?rev=1542192349&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.pscs.co.uk/reference:imap4_server_script?rev=1750675906&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.pscs.co.uk/reference:vpop3.hexstring?rev=1730218081&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.pscs.co.uk/how_to:configure_srs?rev=1755530891&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.pscs.co.uk/reference:lua_hash_functions?rev=1730217591&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.pscs.co.uk/reference:password_strength_checking_script?rev=1767605139&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.pscs.co.uk/reference:user_routing_script?rev=1679913138&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.pscs.co.uk/reference:users_autoresponderconditions?rev=1542192349&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.pscs.co.uk/reference:lua_monitor_script?rev=1566922420&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.pscs.co.uk/reference:lua_smtp_mx_control?rev=1771948188&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.pscs.co.uk/adminapi:userruleconditions?rev=1542192349&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.pscs.co.uk/mailapi:userruleconditions?rev=1542192349&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.pscs.co.uk/reference:archive_script?rev=1679787211&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.pscs.co.uk/reference:scheduling_management_scripts?rev=1542192349&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.pscs.co.uk/reference:signature_script?rev=1542192349&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.pscs.co.uk/reference:spamrules_statement_getmd5?rev=1542192349&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.pscs.co.uk/reference:spamrules_variables?rev=1692028861&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.pscs.co.uk/reference:vpop3.base64?rev=1730217971&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.pscs.co.uk/reference:vpop3.unhexstring?rev=1730218177&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.pscs.co.uk/wiki:syntax?rev=1773676810&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.pscs.co.uk/adminapi:smtpclientallows?rev=1542192349&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.pscs.co.uk/adminapi:smtpclientblocks?rev=1542192349&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.pscs.co.uk/adminapi:smtpspfwhitelist?rev=1542192349&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.pscs.co.uk/adminapi:userruleactions?rev=1542192349&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.pscs.co.uk/adminapi:userrulelist?rev=1542192349&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.pscs.co.uk/mailapi:userruleactions?rev=1542192349&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.pscs.co.uk/mailapi:userrulelist?rev=1542192349&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.pscs.co.uk/reference:autoresponder_global_script?rev=1774279769&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.pscs.co.uk/reference:group_a_user_s_folders_into_letter_groups?rev=1773659562&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.pscs.co.uk/reference:lua_scripting?rev=1774568941&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.pscs.co.uk/reference:lua_smtp_relay_control?rev=1755163495&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.pscs.co.uk/reference:spamrules_statement_httppost?rev=1542192349&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.pscs.co.uk/reference:spamrules_statement_reject?rev=1542192349&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.pscs.co.uk/reference:vpop3net.gethttp?rev=1615308164&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.pscs.co.uk/how_to:whitelist_blacklist?rev=1542192349&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.pscs.co.uk/how_to:write_your_own_spam_filter_rules?rev=1542192349&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.pscs.co.uk/reference:database_restore?rev=1542192349&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.pscs.co.uk/reference:password_lengths?rev=1638187584&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.pscs.co.uk/reference:quarantine_viewer?rev=1542192349&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.pscs.co.uk/reference:scheduler_script?rev=1628506507&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.pscs.co.uk/reference:smtp_advanced?rev=1542192349&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.pscs.co.uk/reference:spamfilter_script_configuration?rev=1542192349&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.pscs.co.uk/reference:spamrules_checkrecipient?rev=1542192349&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.pscs.co.uk/reference:spamrules_statement_addheader?rev=1542192349&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.pscs.co.uk/reference:spamrules_statement_countmatches?rev=1749197557&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.pscs.co.uk/reference:spamrules_statement_dbdeletetime?rev=1542192349&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.pscs.co.uk/reference:spamrules_statement_getsectionencoding?rev=1542192349&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.pscs.co.uk/reference:spamrules_statement_ifinbag?rev=1542192349&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.pscs.co.uk/reference:spamrules_statement_removetags?rev=1542192349&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.pscs.co.uk/reference:spamrules_statement_replace?rev=1542192349&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.pscs.co.uk/reference:user_delivery_script?rev=1542192349&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.pscs.co.uk/reference:user_manager_script?rev=1713775058&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.pscs.co.uk/reference:vpop3.getmessagelines?rev=1542192349&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.pscs.co.uk/reference:vpop3.getmessagepart?rev=1542192349&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.pscs.co.uk/reference:vpop3.getmessagepartbody?rev=1542192349&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.pscs.co.uk/reference:vpop3.getmessagepartheader?rev=1542192349&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.pscs.co.uk/reference:vpop3.getsetting?rev=1544547961&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.pscs.co.uk/reference:vpop3.hmac?rev=1730217799&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.pscs.co.uk/reference:vpop3.saveattachment?rev=1542192349&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.pscs.co.uk/reference:vpop3.setsetting?rev=1615307830&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.pscs.co.uk/reference:vpop3.unbase64?rev=1730218035&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.pscs.co.uk/reference:white_black_lists?rev=1542192349&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="https://wiki.pscs.co.uk/_media/wiki:dokuwiki.svg">
        <title>PSCS Wiki</title>
        <link>https://wiki.pscs.co.uk/</link>
        <url>https://wiki.pscs.co.uk/_media/wiki:dokuwiki.svg</url>
    </image>
    <item rdf:about="https://wiki.pscs.co.uk/reference:lua_smtp_server_script?rev=1746692615&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-05-08T08:23:35+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>SMTP Server Lua Scripting</title>
        <link>https://wiki.pscs.co.uk/reference:lua_smtp_server_script?rev=1746692615&amp;do=diff</link>
        <description>SMTP Server Lua Scripting

The SMTP Server Lua Script is called SMTPSVR.LUA and can be edited from the Settings -&gt; Scripts page in the VPOP3 settings. This script is called whenever an instance of the VPOP3 SMTP server is launched - ie whenever someone opens a connection to port 25 on the VPOP3 server to send it a message, whether from a local user or an incoming SMTP message.</description>
    </item>
    <item rdf:about="https://wiki.pscs.co.uk/reference:lua_pop3_client_script?rev=1692172081&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-08-16T07:48:01+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>POP3 Client Lua Scripting</title>
        <link>https://wiki.pscs.co.uk/reference:lua_pop3_client_script?rev=1692172081&amp;do=diff</link>
        <description>POP3 Client Lua Scripting

The POP3 Client Lua Script is called POP3CLT.LUA and is edited in Settings -&gt; Scripts. This script is called whenever VPOP3 runs a POP3 session to download messages from a remote POP3 server.

VPOP3 will call the following Lua functions in the script at the following times:</description>
    </item>
    <item rdf:about="https://wiki.pscs.co.uk/reference:outgoing_message_script?rev=1711018194&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-03-21T10:49:54+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Outgoing Message Scripting</title>
        <link>https://wiki.pscs.co.uk/reference:outgoing_message_script?rev=1711018194&amp;do=diff</link>
        <description>Outgoing Message Scripting

Every time VPOP3 adds a message to the Outgoing mail queue, it runs a script called outmessage.lua.

Scripts are stored as files in the VPOP3 directory in VPOP3 v6.6 and earlier, or managed through the Settings -&gt; Scripts page in VPOP3 v6.7 and later.</description>
    </item>
    <item rdf:about="https://wiki.pscs.co.uk/reference:spamrules_statement_ifmatch?rev=1542192349&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-11-14T10:45:49+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Spam Filter Rules: IfMatch</title>
        <link>https://wiki.pscs.co.uk/reference:spamrules_statement_ifmatch?rev=1542192349&amp;do=diff</link>
        <description>Spam Filter Rules: IfMatch
Statement  IfMatch Version  2.1.7+ Purpose  Allows you to perform a regular or substring match on a variable or part of the message being processed 
IfMatch statements require a data parameter and a search value, in the format</description>
    </item>
    <item rdf:about="https://wiki.pscs.co.uk/reference:spamrules_db_comparator?rev=1542192349&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-11-14T10:45:49+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Spamfilter database comparators</title>
        <link>https://wiki.pscs.co.uk/reference:spamrules_db_comparator?rev=1542192349&amp;do=diff</link>
        <description>Spamfilter database comparators

Several Spamfilter DB statements allow comparators which are listed below

If the value specified in the statement is numeric:

	*  = or == compare numeric values for equality
	*  &lt;&gt; or != compare numeric values for inequality</description>
    </item>
    <item rdf:about="https://wiki.pscs.co.uk/reference:imap4_server_script?rev=1750675906&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-06-23T10:51:46+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>IMAP4 Server Scripting</title>
        <link>https://wiki.pscs.co.uk/reference:imap4_server_script?rev=1750675906&amp;do=diff</link>
        <description>IMAP4 Server Scripting

(Added in V6.12)

DoCapability function

When the IMAP4 CAPABILITY command is received, VPOP3 generates a capability string based on settings, then calls
DoCapability(ipaddr, capabilities)
	*  ipaddr = IP address of the client computer</description>
    </item>
    <item rdf:about="https://wiki.pscs.co.uk/reference:vpop3.hexstring?rev=1730218081&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-29T16:08:01+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>VPOP3.HexString</title>
        <link>https://wiki.pscs.co.uk/reference:vpop3.hexstring?rev=1730218081&amp;do=diff</link>
        <description>VPOP3.HexString

Added in VPOP3 8.7

This function returns a Hex string encoding of the supplied parameter
VPOP3.HexString(text)
or
VPOP3.HexString(byte-array)

It can be passed either a text string or a table containing one byte per table-entry (eg as returned from the</description>
    </item>
    <item rdf:about="https://wiki.pscs.co.uk/how_to:configure_srs?rev=1755530891&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-08-18T15:28:11+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Configure SRS</title>
        <link>https://wiki.pscs.co.uk/how_to:configure_srs?rev=1755530891&amp;do=diff</link>
        <description>Configure SRS

In VPOP3 8.8 and later, you can use Lua scripting to implement &#039;SRS&#039; (Sender Rewriting Scheme&#039;) in VPOP3

This involves adding a couple of functions to rewrite outgoing return paths in &#039;relayout.lua&#039; or &#039;mxout.lua&#039; as appropriate and a couple of functions to redirect rewritten bounce message recipients in &#039;smtpsvr.lua&#039;</description>
    </item>
    <item rdf:about="https://wiki.pscs.co.uk/reference:lua_hash_functions?rev=1730217591&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-29T15:59:51+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Lua Hashing Functions</title>
        <link>https://wiki.pscs.co.uk/reference:lua_hash_functions?rev=1730217591&amp;do=diff</link>
        <description>Lua Hashing Functions

Added in VPOP3 8.7

Four functions have been added to perform hash algorithms on a text string

	*  VPOP3.SHA1(string)
	*  VPOP3.SHA256(string)
	*  VPOP3.SHA512(string)
	*  VPOP3.MD5(string)

All functions take a string parameter, and return a table of numbers containing the hash value (one byte per table entry). The length of the returned table are:</description>
    </item>
    <item rdf:about="https://wiki.pscs.co.uk/reference:password_strength_checking_script?rev=1767605139&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-01-05T09:25:39+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Password Strength Checking Script</title>
        <link>https://wiki.pscs.co.uk/reference:password_strength_checking_script?rev=1767605139&amp;do=diff</link>
        <description>Password Strength Checking Script

You can tell VPOP3 to enforce password strength checks by using a Lua script which performs the checks for you.

The Lua script can be edited in Settings -&gt; Scripts and is called passwordcheck.lua (in older versions of VPOP3 it is stored in a file called</description>
    </item>
    <item rdf:about="https://wiki.pscs.co.uk/reference:user_routing_script?rev=1679913138&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-03-27T10:32:18+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>User Routing Script</title>
        <link>https://wiki.pscs.co.uk/reference:user_routing_script?rev=1679913138&amp;do=diff</link>
        <description>User Routing Script

If there is a &lt;username&gt;/user_redirect.lua script, this Lua script can override VPOP3&#039;s message routing options. You can edit this either in the Settings -&gt; Scripts page in the settings, or via the &#039;Routing&#039; tab in the user&#039;s settings in the VPOP3 administration console. This script affects how VPOP3 will handle how messages</description>
    </item>
    <item rdf:about="https://wiki.pscs.co.uk/reference:users_autoresponderconditions?rev=1542192349&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-11-14T10:45:49+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Users.AutoresponderConditions table</title>
        <link>https://wiki.pscs.co.uk/reference:users_autoresponderconditions?rev=1542192349&amp;do=diff</link>
        <description>Users.AutoresponderConditions table

The Users.AutoresponderConditions table contains a record of all autoresponder trigger conditions created in VPOP3.

These tell VPOP3 when a particular autoresponder should fire for a particular user. Each autoresponder can have zero or more conditions. An autoresponder with zero conditions will never fire but can be reactivated later by adding a new condition.</description>
    </item>
    <item rdf:about="https://wiki.pscs.co.uk/reference:lua_monitor_script?rev=1566922420&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-08-27T16:13:40+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Monitor Scripting</title>
        <link>https://wiki.pscs.co.uk/reference:lua_monitor_script?rev=1566922420&amp;do=diff</link>
        <description>Monitor Scripting

(Added in V6.15)

This script has three functions:

	*  MonitorIncoming
	*  MonitorInternal
	*  MonitorOut

The functions are similar, except they are called when different messages are to be monitored (incoming, internal and outgoing messages respectively).</description>
    </item>
    <item rdf:about="https://wiki.pscs.co.uk/reference:lua_smtp_mx_control?rev=1771948188&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-02-24T15:49:48+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Lua SMTP MX Control</title>
        <link>https://wiki.pscs.co.uk/reference:lua_smtp_mx_control?rev=1771948188&amp;do=diff</link>
        <description>Lua SMTP MX Control

Every time VPOP3 is going to send messages using direct MX sending, it runs a script called mxout.lua which can be created/edited in Settings -&gt; Scripts (or in the VPOP3 directory in VPOP3 v6.6 or earlier).

Global Variables

Starting with v8.8, the following global variables are defined:</description>
    </item>
    <item rdf:about="https://wiki.pscs.co.uk/adminapi:userruleconditions?rev=1542192349&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-11-14T10:45:49+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>UserRuleConditions Replacement</title>
        <link>https://wiki.pscs.co.uk/adminapi:userruleconditions?rev=1542192349&amp;do=diff</link>
        <description>UserRuleConditions Replacement

Use:
~userruleconditions~
&lt;format string&gt;
~end~

Required parameter: Account, RuleId

This returns the message rule conditions for the specified rule

The format string can have the replacements

	*  id - numeric ID of the condition</description>
    </item>
    <item rdf:about="https://wiki.pscs.co.uk/mailapi:userruleconditions?rev=1542192349&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-11-14T10:45:49+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>UserRuleConditions Replacement</title>
        <link>https://wiki.pscs.co.uk/mailapi:userruleconditions?rev=1542192349&amp;do=diff</link>
        <description>UserRuleConditions Replacement

Use:
~userruleconditions~
&lt;format string&gt;
~end~

Required parameter: RuleId

This returns the message rule conditions for the specified rule

The format string can have the replacements

	*  id - numeric ID of the condition
	*  field - field/data to test</description>
    </item>
    <item rdf:about="https://wiki.pscs.co.uk/reference:archive_script?rev=1679787211&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-03-25T23:33:31+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Archive Script</title>
        <link>https://wiki.pscs.co.uk/reference:archive_script?rev=1679787211&amp;do=diff</link>
        <description>Archive Script

(from VPOP3 v6 onwards)

Archive scripting lets you indicate whether full message content should be stored in the message archive. This could be used, for instance, for filtering out messages containing credit card details.

The message headers will still be archived, along with the explanation text returned by the script.</description>
    </item>
    <item rdf:about="https://wiki.pscs.co.uk/reference:scheduling_management_scripts?rev=1542192349&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-11-14T10:45:49+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Scheduling Management Scripts</title>
        <link>https://wiki.pscs.co.uk/reference:scheduling_management_scripts?rev=1542192349&amp;do=diff</link>
        <description>Scheduling Management Scripts

VPOP3 runs a script called scheduler.lua in the background, it will periodically call functions in this script at approximately 1 minute, 5 minute, 1 hour and 1 day intervals. These times are only approximate so should not be relied upon for timing.</description>
    </item>
    <item rdf:about="https://wiki.pscs.co.uk/reference:signature_script?rev=1542192349&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-11-14T10:45:49+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Signature Script</title>
        <link>https://wiki.pscs.co.uk/reference:signature_script?rev=1542192349&amp;do=diff</link>
        <description>Signature Script

If you want more complex signatures on outgoing emails, rather than the static text/HTML you can define within VPOP3, then you can use a simple Lua script to define the signature.

The Lua script is stored in a file called signature.lua</description>
    </item>
    <item rdf:about="https://wiki.pscs.co.uk/reference:spamrules_statement_getmd5?rev=1542192349&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-11-14T10:45:49+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Spam Filter Rules: GetMD5</title>
        <link>https://wiki.pscs.co.uk/reference:spamrules_statement_getmd5?rev=1542192349&amp;do=diff</link>
        <description>Spam Filter Rules: GetMD5
Statement  GetMD5 Version  2.3.6+ Purpose  Performs an MD5 hash on a string, and returns the result into the specified variable in hex encoded form 
The GetMD5 statement requires a string and variable name, in the format
GetMD5 &lt;string&gt; &lt;variable name&gt;</description>
    </item>
    <item rdf:about="https://wiki.pscs.co.uk/reference:spamrules_variables?rev=1692028861&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-08-14T16:01:01+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Spam Filter Rules: Variables</title>
        <link>https://wiki.pscs.co.uk/reference:spamrules_variables?rev=1692028861&amp;do=diff</link>
        <description>Spam Filter Rules: Variables

The VPOP3 spam filter script language supports simple variables. In most places these are specified as ${&lt;variable name&gt;}, but in some places they are just specified as &lt;variable name&gt; - for instance where a statement always puts its result into a variable.</description>
    </item>
    <item rdf:about="https://wiki.pscs.co.uk/reference:vpop3.base64?rev=1730217971&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-29T16:06:11+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>VPOP3.Base64</title>
        <link>https://wiki.pscs.co.uk/reference:vpop3.base64?rev=1730217971&amp;do=diff</link>
        <description>VPOP3.Base64

Added in VPOP3 8.7

This function returns a Base64 string encoding of the supplied parameter
VPOP3.Base64(text)
or
VPOP3.Base64(byte-array)

It can be passed either a text string or a table containing one byte per table-entry (eg as returned from the</description>
    </item>
    <item rdf:about="https://wiki.pscs.co.uk/reference:vpop3.unhexstring?rev=1730218177&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-29T16:09:37+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>VPOP3.UnHexString</title>
        <link>https://wiki.pscs.co.uk/reference:vpop3.unhexstring?rev=1730218177&amp;do=diff</link>
        <description>VPOP3.UnHexString

Added in VPOP3 8.7

This function Decodes a Hex string into the original data
VPOP3.UnHexString(hex-text)
The input hex-text should have no extra spaces or punctuation, and be two hex digits per result byte. Any pairs of characters which are not valid hex will be processed as a &#039;zero&#039; byte.</description>
    </item>
    <item rdf:about="https://wiki.pscs.co.uk/wiki:syntax?rev=1773676810&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-03-16T16:00:10+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Formatting Syntax</title>
        <link>https://wiki.pscs.co.uk/wiki:syntax?rev=1773676810&amp;do=diff</link>
        <description>Formatting Syntax

DokuWiki supports some simple markup language, which tries to make the datafiles to be as readable as possible. This page contains all possible syntax you may use when editing the pages. Simply have a look at the source of this page by pressing</description>
    </item>
    <item rdf:about="https://wiki.pscs.co.uk/adminapi:smtpclientallows?rev=1542192349&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-11-14T10:45:49+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>SMTPClientAllows Replacement</title>
        <link>https://wiki.pscs.co.uk/adminapi:smtpclientallows?rev=1542192349&amp;do=diff</link>
        <description>SMTPClientAllows Replacement

Use:
~smtpclientallows~
&lt;format string&gt;
~end~

The format string can have the replacements

	*  address - IP address (returned as host address or CIDR address as appropriate)
	*  date - the date/time the address was added to the database in YYYYMMDDHHMMSS format</description>
    </item>
    <item rdf:about="https://wiki.pscs.co.uk/adminapi:smtpclientblocks?rev=1542192349&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-11-14T10:45:49+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>SMTPClientBlocks Replacement</title>
        <link>https://wiki.pscs.co.uk/adminapi:smtpclientblocks?rev=1542192349&amp;do=diff</link>
        <description>SMTPClientBlocks Replacement

Use:
~smtpclientblocks~
&lt;format string&gt;
~end~

The format string can have the replacements

	*  address - IP address (returned as host address or CIDR address as appropriate)
	*  date - the date/time the address was added to the database in YYYYMMDDHHMMSS format</description>
    </item>
    <item rdf:about="https://wiki.pscs.co.uk/adminapi:smtpspfwhitelist?rev=1542192349&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-11-14T10:45:49+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>SMTPSPFWhitelist Replacement</title>
        <link>https://wiki.pscs.co.uk/adminapi:smtpspfwhitelist?rev=1542192349&amp;do=diff</link>
        <description>SMTPSPFWhitelist Replacement

Use:
~smtpspfwhitelist~
&lt;format string&gt;
~end~

If you specify the parameter serverid then this will just return white list entries which match all servers or this server.

The format string can have the replacements

	*  id - the whitelist entry ID</description>
    </item>
    <item rdf:about="https://wiki.pscs.co.uk/adminapi:userruleactions?rev=1542192349&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-11-14T10:45:49+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>UserRuleActions Replacement</title>
        <link>https://wiki.pscs.co.uk/adminapi:userruleactions?rev=1542192349&amp;do=diff</link>
        <description>UserRuleActions Replacement

Use:
~userruleactions~
&lt;format string&gt;
~end~

Required parameter: Account, RuleId

This returns the message rule actions for the specified rule

The format string can have the replacements

	*  id - numeric ID of the action
	*  type - action type</description>
    </item>
    <item rdf:about="https://wiki.pscs.co.uk/adminapi:userrulelist?rev=1542192349&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-11-14T10:45:49+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>UserRuleList Replacement</title>
        <link>https://wiki.pscs.co.uk/adminapi:userrulelist?rev=1542192349&amp;do=diff</link>
        <description>UserRuleList Replacement

Use:
~userrulelist~
&lt;format string&gt;
~end~

Required parameter: Account

This returns the message rule list (in order) for the specified user

The format string can have the replacements

	*  id - numeric ID of the rule
	*  order - numeric order number (1-n) of the rule</description>
    </item>
    <item rdf:about="https://wiki.pscs.co.uk/mailapi:userruleactions?rev=1542192349&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-11-14T10:45:49+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>UserRuleActions Replacement</title>
        <link>https://wiki.pscs.co.uk/mailapi:userruleactions?rev=1542192349&amp;do=diff</link>
        <description>UserRuleActions Replacement

Use:
~userruleactions~
&lt;format string&gt;
~end~

Required parameter: RuleId

This returns the message rule actions for the specified rule

The format string can have the replacements

	*  id - numeric ID of the action
	*  type - action type</description>
    </item>
    <item rdf:about="https://wiki.pscs.co.uk/mailapi:userrulelist?rev=1542192349&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-11-14T10:45:49+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>UserRuleList Replacement</title>
        <link>https://wiki.pscs.co.uk/mailapi:userrulelist?rev=1542192349&amp;do=diff</link>
        <description>UserRuleList Replacement

Use:
~userrulelist~
&lt;format string&gt;
~end~

Required parameter: None

This returns the message rule list (in order) for the current user

The format string can have the replacements

	*  id - numeric ID of the rule
	*  order - numeric order number (1-n) of the rule</description>
    </item>
    <item rdf:about="https://wiki.pscs.co.uk/reference:autoresponder_global_script?rev=1774279769&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-03-23T15:29:29+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Autoresponder Global Scripting</title>
        <link>https://wiki.pscs.co.uk/reference:autoresponder_global_script?rev=1774279769&amp;do=diff</link>
        <description>Autoresponder Global Scripting

For scripting to modify the autoresponder text which is embedded in the autoresponder itself, see Autoresponder Scripting

The Autoresponder Global Script is executed for every autoresponse. It is stored in the &#039;Autoresponder.lua&#039; script in Settings → Scripts</description>
    </item>
    <item rdf:about="https://wiki.pscs.co.uk/reference:group_a_user_s_folders_into_letter_groups?rev=1773659562&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-03-16T11:12:42+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Group a user&#039;s folders into letter groups</title>
        <link>https://wiki.pscs.co.uk/reference:group_a_user_s_folders_into_letter_groups?rev=1773659562&amp;do=diff</link>
        <description>Group a user&#039;s folders into letter groups

This is useful in VPOP3 Enterprise if you have a large folder with many subfolders and want to group the subfolders into other subfolders based on their first letter

For example, if you have

	*  Customers</description>
    </item>
    <item rdf:about="https://wiki.pscs.co.uk/reference:lua_scripting?rev=1774568941&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-03-26T23:49:01+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Lua Scripting</title>
        <link>https://wiki.pscs.co.uk/reference:lua_scripting?rev=1774568941&amp;do=diff</link>
        <description>Lua Scripting

Lua is a simple scripting programming language often used for embedding in other applications. VPOP3 uses it to customise behaviour in places where most people will be happy with the default behaviour, but occasionally people will want to do something more complicated. Rather than having lots of extra options to complicate things for most users, we have opted to go for a more flexible scripting facility.</description>
    </item>
    <item rdf:about="https://wiki.pscs.co.uk/reference:lua_smtp_relay_control?rev=1755163495&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-08-14T09:24:55+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Lua SMTP Relay Control</title>
        <link>https://wiki.pscs.co.uk/reference:lua_smtp_relay_control?rev=1755163495&amp;do=diff</link>
        <description>Lua SMTP Relay Control

Every time VPOP3 is going to send messages via SMTP Relay, it runs a script called relayout.lua in the VPOP3 directory.

Global Variables

This script may have global variables, depending on your version of VPOP3.

In VPOP3 3.0.0L and later, there are two read-only global variables set at the start of the script:</description>
    </item>
    <item rdf:about="https://wiki.pscs.co.uk/reference:spamrules_statement_httppost?rev=1542192349&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-11-14T10:45:49+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Spam Filter Rules: HTTPPost</title>
        <link>https://wiki.pscs.co.uk/reference:spamrules_statement_httppost?rev=1542192349&amp;do=diff</link>
        <description>Spam Filter Rules: HTTPPost
Statement  HTTPPost Version  2.4.9+ Purpose  Enables the script to post data to a web server 
The HTTPPost statement requires a url, data string, headers variable name and content variable name, in the format
HTTPPost &lt;url&gt; &lt;data string&gt; &lt;headers variable name&gt; &lt;content variable name&gt;</description>
    </item>
    <item rdf:about="https://wiki.pscs.co.uk/reference:spamrules_statement_reject?rev=1542192349&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-11-14T10:45:49+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Spam Filter Rules: Reject</title>
        <link>https://wiki.pscs.co.uk/reference:spamrules_statement_reject?rev=1542192349&amp;do=diff</link>
        <description>Spam Filter Rules: Reject
Statement  Reject Version  2.4.5+ Purpose  Perform an SMTP &#039;Reject&#039; on the incoming message 
The Reject statement requires an error code/text string, in the format
Reject &lt;error string&gt;
This will reject the current SMTP message with the specified SMTP result code. Use a 4xx error code (eg 450) to reject the message temporarily, or a 5xx error code (eg 550) to reject the message permanently.</description>
    </item>
    <item rdf:about="https://wiki.pscs.co.uk/reference:vpop3net.gethttp?rev=1615308164&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-03-09T16:42:44+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>VPOP3Net.GetHTTP</title>
        <link>https://wiki.pscs.co.uk/reference:vpop3net.gethttp?rev=1615308164&amp;do=diff</link>
        <description>VPOP3Net.GetHTTP

This function takes a single parameter

	*  the URL to retrieve. This can be http:// or https://

The function returns two values

	*  a table containing the result of the GET
		*  Host - the hostname
		*  File - the filename
		*  Headers - a table containing the response headers</description>
    </item>
    <item rdf:about="https://wiki.pscs.co.uk/how_to:whitelist_blacklist?rev=1542192349&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-11-14T10:45:49+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Spamfilter Whitelist &amp; Blacklist</title>
        <link>https://wiki.pscs.co.uk/how_to:whitelist_blacklist?rev=1542192349&amp;do=diff</link>
        <description>Spamfilter Whitelist &amp; Blacklist

The VPOP3 spamfilter has a whitelist and a blacklist for sender addresses. It also has a whitelist and blacklist for words/phrases.

You can view these lists in the VPOP3 settings by going to Settings -&gt; Spamfilter -&gt;</description>
    </item>
    <item rdf:about="https://wiki.pscs.co.uk/how_to:write_your_own_spam_filter_rules?rev=1542192349&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-11-14T10:45:49+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>How to write your own spam filter rules</title>
        <link>https://wiki.pscs.co.uk/how_to:write_your_own_spam_filter_rules?rev=1542192349&amp;do=diff</link>
        <description>How to write your own spam filter rules

VPOP3&#039;s spam filter uses a basic scripting language designed for filtering email messages, so a full description of writing your own rules would be very long and complex, as it is really something that only a programmer should do.</description>
    </item>
    <item rdf:about="https://wiki.pscs.co.uk/reference:database_restore?rev=1542192349&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-11-14T10:45:49+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Database -&gt; Restore Tab</title>
        <link>https://wiki.pscs.co.uk/reference:database_restore?rev=1542192349&amp;do=diff</link>
        <description>Database -&gt; Restore Tab

This tab is only in VPOP3 Enterprise (v5 and later), and is for performing a partial (mailbox/mail folder) restore of the database. To do a full restore of the database, or for VPOP3 Basic/Standard, see the “Restore a Backup of VPOP3” topic

Using the</description>
    </item>
    <item rdf:about="https://wiki.pscs.co.uk/reference:password_lengths?rev=1638187584&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-11-29T12:06:24+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Password Lengths</title>
        <link>https://wiki.pscs.co.uk/reference:password_lengths?rev=1638187584&amp;do=diff</link>
        <description>Password Lengths

If you want to do an audit of users&#039; password lengths, then go to Settings -&gt; Database -&gt; Queries and run this query:

SELECT username,LENGTH(DECODE(SUBSTRING(datavalue FROM 2),&#039;base64&#039;)) FROM users.usersettings INNER JOIN users.users USING(usernumber) WHERE dataname=&#039;mainpassword&#039;;</description>
    </item>
    <item rdf:about="https://wiki.pscs.co.uk/reference:quarantine_viewer?rev=1542192349&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-11-14T10:45:49+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Spamfilter Quarantine Viewer</title>
        <link>https://wiki.pscs.co.uk/reference:quarantine_viewer?rev=1542192349&amp;do=diff</link>
        <description>Spamfilter Quarantine Viewer

Settings -&gt; Spamfilter -&gt; Quarantine Viewer

The Quarantine Viewer lets you see messages which have been quarantined by the VPOP3 Spam Filter. As an administrator you can see quarantined messages for any user, and release them if appropriate. If you release a message, it will be sent into the original recipient&#039;s Inbox, not into your Inbox.</description>
    </item>
    <item rdf:about="https://wiki.pscs.co.uk/reference:scheduler_script?rev=1628506507&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-08-09T10:55:07+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Scheduled Task Script</title>
        <link>https://wiki.pscs.co.uk/reference:scheduler_script?rev=1628506507&amp;do=diff</link>
        <description>Scheduled Task Script

Note that this functionality is only available in VPOP3 Enterprise

VPOP3 Enterprise can run Lua script periodically to do custom background tasks. It can run a function every minute, 5 minutes, hourly or daily.

The Lua script is stored in a file called</description>
    </item>
    <item rdf:about="https://wiki.pscs.co.uk/reference:smtp_advanced?rev=1542192349&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-11-14T10:45:49+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>SMTP Service -&gt; Advanced Tab</title>
        <link>https://wiki.pscs.co.uk/reference:smtp_advanced?rev=1542192349&amp;do=diff</link>
        <description>SMTP Service -&gt; Advanced Tab

Services -&gt; SMTP Server -&gt; Advanced Tab

Refuse SMTP Connections from

This setting should be rarely needed, and should be normally left blank. It is here for historic purposes.

If you put some text in this box, then VPOP3 will refuse any SMTP connections from clients whose &#039;HELO&#039;/&#039;EHLO&#039; command data contains the text specified here as a substring. Eg, if this setting is set to &#039;.myisp.com&#039;, then VPOP3 would refuse SMTP connections from any client which sends the c…</description>
    </item>
    <item rdf:about="https://wiki.pscs.co.uk/reference:spamfilter_script_configuration?rev=1542192349&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-11-14T10:45:49+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Spamfilter Script Configuration tab</title>
        <link>https://wiki.pscs.co.uk/reference:spamfilter_script_configuration?rev=1542192349&amp;do=diff</link>
        <description>Spamfilter Script Configuration tab

You reach this tab by going to Settings --&gt; Spam Filter -&gt; General, and then choose the General tab.

The Spamfilter script has various settings that can be changed to alter the behaviour of the spamfilter. These are defined in the script, so may change with different versions of the script. The settings are currently:</description>
    </item>
    <item rdf:about="https://wiki.pscs.co.uk/reference:spamrules_checkrecipient?rev=1542192349&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-11-14T10:45:49+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Increase the spam score for certain recipients</title>
        <link>https://wiki.pscs.co.uk/reference:spamrules_checkrecipient?rev=1542192349&amp;do=diff</link>
        <description>Increase the spam score for certain recipients

This script is for the case where you want certain recipients to have a weighted score. For instance if you have users who have left and who mostly receive spam, but you don&#039;t want to reject their mail totally.</description>
    </item>
    <item rdf:about="https://wiki.pscs.co.uk/reference:spamrules_statement_addheader?rev=1542192349&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-11-14T10:45:49+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Spam Filter Rules: AddHeader</title>
        <link>https://wiki.pscs.co.uk/reference:spamrules_statement_addheader?rev=1542192349&amp;do=diff</link>
        <description>Spam Filter Rules: AddHeader
Statement  AddHeader Version  2.1.7+ Purpose  Allows you to add, replace or remove the specified header line in the message headers 
The AddHeader statement requires the full header line in one continuous string, in the format</description>
    </item>
    <item rdf:about="https://wiki.pscs.co.uk/reference:spamrules_statement_countmatches?rev=1749197557&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-06-06T08:12:37+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Spam Filter Rules: CountMatches</title>
        <link>https://wiki.pscs.co.uk/reference:spamrules_statement_countmatches?rev=1749197557&amp;do=diff</link>
        <description>Spam Filter Rules: CountMatches
Statement  CountMatches Version  2.3.13+ Purpose  Counts the number of times a specific regular expression matches in a string 
CountMatches statements require a data parameter, a search value, and the name of the variable to place the count into, in the format</description>
    </item>
    <item rdf:about="https://wiki.pscs.co.uk/reference:spamrules_statement_dbdeletetime?rev=1542192349&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-11-14T10:45:49+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Spam Filter Rules: DBDeleteTime</title>
        <link>https://wiki.pscs.co.uk/reference:spamrules_statement_dbdeletetime?rev=1542192349&amp;do=diff</link>
        <description>Spam Filter Rules: DBDeleteTime
Statement  DBDeleteTime Version  6.16+ Purpose  Deletes records from the spam filter database based on their last update time 
The DBDeleteTime statement requires a component name, comparator and time value, in the format</description>
    </item>
    <item rdf:about="https://wiki.pscs.co.uk/reference:spamrules_statement_getsectionencoding?rev=1542192349&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-11-14T10:45:49+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Spam Filter Rules: GetSectionEncoding</title>
        <link>https://wiki.pscs.co.uk/reference:spamrules_statement_getsectionencoding?rev=1542192349&amp;do=diff</link>
        <description>Spam Filter Rules: GetSectionEncoding
Statement  GetSectionEncoding Version  2.3.9+ Purpose  Retrieves the MIME encoding method for the specified MIME section number, and returns the result into the specified variable 
The GetSectionEncoding statement requires a message section number and variable name, in the format</description>
    </item>
    <item rdf:about="https://wiki.pscs.co.uk/reference:spamrules_statement_ifinbag?rev=1542192349&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-11-14T10:45:49+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Spam Filter Rules: IfInBag</title>
        <link>https://wiki.pscs.co.uk/reference:spamrules_statement_ifinbag?rev=1542192349&amp;do=diff</link>
        <description>Spam Filter Rules: IfInBag
Statement  IfInBag Version  2.3.7+ Purpose  Checks if a specified value is in a particular bag 
The IfInBag statement requires a bag name and value, in the format
IfInBag &lt;bag name&gt; &lt;value&gt;
	* All IfInBag statements must be followed by an</description>
    </item>
    <item rdf:about="https://wiki.pscs.co.uk/reference:spamrules_statement_removetags?rev=1542192349&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-11-14T10:45:49+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Spam Filter Rules: RemoveTags</title>
        <link>https://wiki.pscs.co.uk/reference:spamrules_statement_removetags?rev=1542192349&amp;do=diff</link>
        <description>Spam Filter Rules: RemoveTags
Statement  RemoveTags Version  2.2.1+ Purpose  Converts an HTML string to its plain text equivalent 
The RemoveTags statement requires a variable name, in the format
RemoveTags &lt;variable name&gt;
	*  HTML tags are removed
	*</description>
    </item>
    <item rdf:about="https://wiki.pscs.co.uk/reference:spamrules_statement_replace?rev=1542192349&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-11-14T10:45:49+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Spam Filter Rules: Replace</title>
        <link>https://wiki.pscs.co.uk/reference:spamrules_statement_replace?rev=1542192349&amp;do=diff</link>
        <description>Spam Filter Rules: Replace
Statement  Replace Version  2.3.5+ Purpose  Replaces specified text in the specified variable with new text 
Replace statements require a variable name, a search value and a replacement string, in the format 
Replace &lt;variable&gt; &lt;search&gt; &lt;replace&gt;</description>
    </item>
    <item rdf:about="https://wiki.pscs.co.uk/reference:user_delivery_script?rev=1542192349&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-11-14T10:45:49+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>User Delivery Script</title>
        <link>https://wiki.pscs.co.uk/reference:user_delivery_script?rev=1542192349&amp;do=diff</link>
        <description>User Delivery Script

(VPOP3 v6.5 or later)

If there is a &lt;username&gt;/delivery.lua script, this Lua script can override VPOP3&#039;s message delivery options. You can edit this in the Settings -&gt; Scripts page in the settings. This script affects how VPOP3 will handle how messages being delivered to this user are handled.</description>
    </item>
    <item rdf:about="https://wiki.pscs.co.uk/reference:user_manager_script?rev=1713775058&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-04-22T08:37:38+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>User Manager Script</title>
        <link>https://wiki.pscs.co.uk/reference:user_manager_script?rev=1713775058&amp;do=diff</link>
        <description>User Manager Script

If you want people to be able to log in using a different username than their VPOP3 username (eg if you want them to be able to log in using an email address), then you can use the UserManager Lua script

The Lua script is managed through the Settings → Scripts page in VPOP3 v8.0 and later and is called &#039;UserManager.LUA.</description>
    </item>
    <item rdf:about="https://wiki.pscs.co.uk/reference:vpop3.getmessagelines?rev=1542192349&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-11-14T10:45:49+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>VPOP3.GetMessageLines</title>
        <link>https://wiki.pscs.co.uk/reference:vpop3.getmessagelines?rev=1542192349&amp;do=diff</link>
        <description>VPOP3.GetMessageLines

The Lua function &#039;VPOP3.GetMessageLines&#039; retrieves content lines from the message currently being processed

This function is only available in the ProcessMessage function of the POP3CLT.LUA or SMTPSVR.LUA scripts.

It takes one parameter:

	*  number - number of lines to retrieve</description>
    </item>
    <item rdf:about="https://wiki.pscs.co.uk/reference:vpop3.getmessagepart?rev=1542192349&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-11-14T10:45:49+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>VPOP3.GetMessagePart</title>
        <link>https://wiki.pscs.co.uk/reference:vpop3.getmessagepart?rev=1542192349&amp;do=diff</link>
        <description>VPOP3.GetMessagePart

The Lua function &#039;VPOP3.GetMessagePart&#039; retrieves a MIME part of the message currently being processed.

This function is only available in the ProcessMessage function of the POP3CLT.LUA or SMTPSVR.LUA scripts.

It takes one parameter:

	*  The MIME part &#039;Path&#039; from the MimeStructure parameter to the ProcessMessage function</description>
    </item>
    <item rdf:about="https://wiki.pscs.co.uk/reference:vpop3.getmessagepartbody?rev=1542192349&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-11-14T10:45:49+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>VPOP3.GetMessagePartBody</title>
        <link>https://wiki.pscs.co.uk/reference:vpop3.getmessagepartbody?rev=1542192349&amp;do=diff</link>
        <description>VPOP3.GetMessagePartBody

The Lua function &#039;VPOP3.GetMessagePartBody&#039; retrieves the content of a MIME part of the message currently being processed.

This function is only available in the ProcessMessage function of the POP3CLT.LUA or SMTPSVR.LUA scripts.

It takes one parameter:</description>
    </item>
    <item rdf:about="https://wiki.pscs.co.uk/reference:vpop3.getmessagepartheader?rev=1542192349&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-11-14T10:45:49+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>VPOP3.GetMessagePartHeader</title>
        <link>https://wiki.pscs.co.uk/reference:vpop3.getmessagepartheader?rev=1542192349&amp;do=diff</link>
        <description>VPOP3.GetMessagePartHeader

The Lua function &#039;VPOP3.GetMessagePartHeader&#039; retrieves a MIME section header of the message currently being processed.

This function is only available in the ProcessMessage function of the POP3CLT.LUA or SMTPSVR.LUA scripts.

It takes one parameter:</description>
    </item>
    <item rdf:about="https://wiki.pscs.co.uk/reference:vpop3.getsetting?rev=1544547961&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-12-11T17:06:01+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>VPOP3.GetSetting</title>
        <link>https://wiki.pscs.co.uk/reference:vpop3.getsetting?rev=1544547961&amp;do=diff</link>
        <description>VPOP3.GetSetting

The Lua function &#039;VPOP3.GetSetting&#039; retrieves a general setting from VPOP3

It takes one parameter:

	*  The name of the setting. This can either by the &#039;Name&#039; field of the &#039;Settings.Settings&#039; database table or the internal setting name</description>
    </item>
    <item rdf:about="https://wiki.pscs.co.uk/reference:vpop3.hmac?rev=1730217799&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-29T16:03:19+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>VPOP3.HMAC</title>
        <link>https://wiki.pscs.co.uk/reference:vpop3.hmac?rev=1730217799&amp;do=diff</link>
        <description>VPOP3.HMAC

Added in VPOP3 8.7

This function performs a HMAC (Hash-based Message Authentication Code) algorithm on supplied text using the supplied key
VPOP3.HMAC(hash algorithm, string, key)
The function takes three parameters:

	*  Hash algorithm -</description>
    </item>
    <item rdf:about="https://wiki.pscs.co.uk/reference:vpop3.saveattachment?rev=1542192349&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-11-14T10:45:49+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>VPOP3.SaveAttachment</title>
        <link>https://wiki.pscs.co.uk/reference:vpop3.saveattachment?rev=1542192349&amp;do=diff</link>
        <description>VPOP3.SaveAttachment

The Lua function &#039;VPOP3.SaveAttachment&#039; saves an attachment from the message being processed to a file

This function is only available in the ProcessMessage function of the POP3CLT.LUA or SMTPSVR.LUA scripts.

It takes two parameters:

	*  number - attachment number to save</description>
    </item>
    <item rdf:about="https://wiki.pscs.co.uk/reference:vpop3.setsetting?rev=1615307830&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-03-09T16:37:10+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>VPOP3.SetSetting</title>
        <link>https://wiki.pscs.co.uk/reference:vpop3.setsetting?rev=1615307830&amp;do=diff</link>
        <description>VPOP3.SetSetting

The Lua function &#039;VPOP3.SetSetting&#039; sets a general setting forVPOP3

It takes two parameters:

	*  The name of the setting. This can either by the &#039;Name&#039; field of the &#039;Settings.Settings&#039; database table or the internal setting name
	*  The data to set (must be a string)</description>
    </item>
    <item rdf:about="https://wiki.pscs.co.uk/reference:vpop3.unbase64?rev=1730218035&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-29T16:07:15+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>VPOP3.UnBase64</title>
        <link>https://wiki.pscs.co.uk/reference:vpop3.unbase64?rev=1730218035&amp;do=diff</link>
        <description>VPOP3.UnBase64

Added in VPOP3 8.7

This function Decodes a Base64 string into the original data
VPOP3.UnBase64(base64-text)
It returns a table containing the decoded data bytes - one byte per table entry.

If there was an error, it returns a Nil value</description>
    </item>
    <item rdf:about="https://wiki.pscs.co.uk/reference:white_black_lists?rev=1542192349&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-11-14T10:45:49+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Spamfilter White/Blacklists</title>
        <link>https://wiki.pscs.co.uk/reference:white_black_lists?rev=1542192349&amp;do=diff</link>
        <description>Spamfilter White/Blacklists

This lets you set whitelists &amp; blacklists for the spam filter.

There are four lists you can manage. The Whitelist Addresses &amp; Blacklist Addresses lists let you specify sender email addresses to check. With the default rule weights, if a sender&#039;s address is on the Whitelist, it will be allowed through the spam filter, and if it is on the Blacklist it will be blocked. If an address is on both the Whitelist and the Blacklist, they will cancel each other out, and the me…</description>
    </item>
</rdf:RDF>
