What's new
This release brings exception handling with try/catch/throw to Halon's scripting language, support for debugging script for live connections in the MTA using the Visual Studio Code plugin, as well as a new API and web administration view for managing inbound SMTP connections. Please see the changelog below for a full list of changes, and the release blog for more information.
Important changes
- The =~ and !~ operators now throws an exception on invalid regular expressions, meaning that user input can cause deferred connections unless you add try/catch.
- Queued messages with empty remotemx or jobid queue fields are no longer matched against queue policies defined for those fields. For example, queued messages with an empty job ID are no longer limited to the default concurrency/rate if there is a policy on job ID with a default value which preciously got applied also to empty IDs. If you rely on empty values for those two fields, change your configuration to set a specific well-known value instead of an empty string.
- Modules loaded with import can no longer access global user-defined functions. This was possible as the result as a bug, which is now fixed. Make sure that all user-defined functions called from a module is passed explicitly to that module.
Changelog
This is a list of notable changes. You can find the full changelog here.
Added
- Scripting language
- Introduces support for exception handling with an
Exception
class and accompanyingtry
,catch
andthrow
control structures - New array functions
array_unique()
andarray_shuffle()
- Two new methods to pre-compile regular expressions;
pcre_compile()
function for user input, and#/myregexpattern/
syntax for static expressions - Added
X509::String()
method for creating an X.509 resource from PEM or DER - Added
MIME.send()
method for inline delivery directly from MIME object - Added
remove_if_zero
argument tomemory_dec()
for automatic cleanup - Added
json
andregex
formatters toimport
andcsv_decode()
- Ability to
import
text file lines asSet
object items for fast lookups - Allow
foreach
on$this
in classes to iterate all instance properties - Added
depth
option todomain_includes()
function - Ability to use
response_headers
withextended_result
inhttp()
- Introduces support for exception handling with an
- MTA
- Support for debugging script in the smtpd process using the Visual Studio Code plugin
- Added
additional_headers
option to pre-deliveryTry()
function for passing data - Added
modified_original
DSN option to post-deliveryBounce()
for altering original headers - Added connection
id
andremoteuid
to SMTP server$connection
array
- Command line tools
- Added
--unpack
option tohalonconfig
to reverse packing - The
halonconfig
command now validates plugin configuration schemas - Support for loading
File
from standard input when running inhsh
- Added
- API
- An inbound connection list
ServerConnectionsListRequest
API with corresponding web administration view - Related to the above inbound connection list, the ability to close inbound connection using
ServerConnectionsCloseRequest
API and said web administration view
- An inbound connection list
Changes and improvements
- New HQF2 queue file format which combines .eml and .hqf
Comments
0 comments
Article is closed for comments.