User Tools

Site Tools


reference:user_routing_script

This is an old revision of the document!


User Routing Script

If there is a user_redirect.lua file in a user's directory this Lua script can override VPOP3's message routing options. You can edit this either on the disk directly, or via the 'Routing' tab in the user's settings in the VPOP3 administration console. This script affects how VPOP3 will handle how messages to this user are handled. (Messages from this user are not affected by the script at all).

If that file doesn't exist, but there is a user_redirect.lua file in the main VPOP3 directory, that Lua script will be used instead.

When the user_redirect.lua script is run there are several global variables set:

  • Assistants - the value of the 'Assistants' setting for this user (string)
  • RedirectToAssistant - the value of the 'Redirect to Assistant' setting for this user (boolean)
  • Forwards - the value of the 'Forward To' setting for this user (string)
  • UseForwards - the value of the 'UseForwarding' setting for this user (boolean)
  • SendToNormalRecipient - if this is true the message will be sent to the normal recipient (unless a Forward or Assistant overrides this) (boolean)
  • ShouldForward - if this is false then VPOP3 will ignore the Assistants and any forwarding settings (boolean)
  • BigRedirect - the settings for the 'If message > xxx kb' setting for this user
  • SmallRedirect - the settings for the 'If message < xxx kb' setting for this user

The BigRedirect and SmallRedirect variables are tables with 4 entries:

  • Target - the target address(es) for this redirector (string)
  • Threshold - the threshold at which this redirector is actioned (in kB) (number)
  • Copy - whether this redirector will copy or redirect the message (boolean)
  • Bigger - true if the redirector checks for messages > Threshold, false if it checks for messages < Threshold (boolean)

All the above settings can be changed by the script to alter the routing (the changes will only apply for this message, not future messages)

There are also some global variables which should be treated as read-only - any changes to them will be ignored outside the Lua script

  • MessageSize - the size of the message in bytes (may be zero if size is unknown)
  • SpamScore - the spam score for the message
  • SpamScoreValid - true if the SpamScore setting is value (it will be false if spam processing is disabled, for instance)
  • Sender - the email address of the message sender
  • User - the username of the user being processed
  • Subject - the subject of the message

An example script might be

--Don't forward any messages from any *@localdomain.com addresses
if (string.find(Sender, "@localdomain%.com$"))
  ShouldForward = false
end
reference/user_routing_script.1317824651.txt.gz · Last modified: 2018/11/14 10:44 (external edit)