This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| reference:lua_smtp_server_script [2025/05/08 09:23] – [SMTP Server Lua Scripting] paul | reference:lua_smtp_server_script [2026/05/29 11:39] (current) – [LoadLimits()] paul | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | =====End()===== | ||
| + | '' | ||
| + | |||
| + | This function is called by VPOP3 when the SMTP service session ends | ||
| + | |||
| ======SMTP Server Lua Scripting====== | ======SMTP Server Lua Scripting====== | ||
| Line 275: | Line 280: | ||
| This function is called by VPOP3 when the SMTP service session ends | This function is called by VPOP3 when the SMTP service session ends | ||
| + | |||
| + | =====LoadLimits()===== | ||
| + | Added in v8.7 | ||
| + | |||
| + | function LoadLimits(threadCounts, | ||
| + | | ||
| + | (cpuLoad & spamfilterDuration added in v9.1) | ||
| + | |||
| + | This function is called by VPOP3 when an SMTP session is about to start to determine whether the load limiting should allow it | ||
| + | |||
| + | * threadCounts = table of settings & counts | ||
| + | * ThreadCount = total number of SMTP sessions | ||
| + | * ThisClientThreadCount = number of SMTP sessions from this IP Address | ||
| + | * ReservedAddresses = reserved addresses from settings | ||
| + | * Response = (output) SMTP response if connection is to be rejected outright | ||
| + | * MaxIncomingServerThreads = from settings | ||
| + | * MinIncomingServerThreads = from settings (added in v9.1) | ||
| + | * DynamicIncomingServerThreads = from settings (added in v9.1) | ||
| + | * MaxLocalServerThreads = from settings | ||
| + | * SingleAddressLimit = from settings | ||
| + | * SingleAddressLimitLocal = from settings | ||
| + | * ReservedThreads = from settings | ||
| + | * LocalClient = boolean - is IP address local | ||
| + | * ipAddress = client IP address | ||
| + | * cpuLoad = CPU load % (0-100) | ||
| + | * spamfilterDuration = average spam filter processing duration over last minute (in milliseconds) | ||
| + | |||
| + | The function should return the ' | ||
| + | |||
| + | If ' | ||
| + | |||
| + | If ' | ||