What's new
This release adds support for the DSN extension, outbound PROXY protocol support, and introduces function generators and yield to the Halon scripting language. Please see the changelog below for a full list of changes, and the release blog for more information.
Upgrade notes
You need to upgrade to 5.3 (or newer) before you can upgrade to 5.5 because of a queue migration only present in the former.
Important changes
- The DKIMADSP() function which was deprecated in version 4.7 (2018) has been removed.
- The aliases SetSenderIP() in the "Connect" context and SetHELO() in the "HELO" context which were deprecated in version 5.1 (early 2019) has been removed.
- The alias GenerateDSN() function which was renamed to Bounce() and deprecated in version 4.4 (2017) has been removed.
- The aliases PickupSuspend() and PickupPolicy() which were renamed to queue_suspend() and queue_policy() in version 5.3 (and only existed with that name during 5.2) has been removed.
Deprecation warnings
The following new deprecation warnings will appear in preparation for future changes. If you need any help to resolve these warnings, please don't hesitate to contact support@halon.io.
- The MAIL FROM, RCPT TO and per-message end-of-DATA hooks' GetTLS() functions have been deprecated in favour of using the $connection["tls"] variable.
- The per-message end-of-DATA hook's GetMailMessage() and and GetMailFile() functions have been deprecated in favour of using the $arguments["mail"] variable.
- The per-message end-of-DATA hook's GetAddressList() function has been deprecated in favour of header_addresslist_extract().
- The per-message end-of-DATA hook's DKIMSign(), DKIMSDID() and DKIMVerify() functions has been deprecated in favour of the methods on the MailMessage() class available as the $arguments["mail"] variable.
Changelog
This is a list of notable changes, in addition to the ones mentioned above. You can find the full changelog here.
Added
- Queue and delivery
- DSN extension support
- Outbound PROXY protocol support
- Ability to choose source IP selection via
sourceip_random
(useful for IP warmup)
- Scripting language
- Function generators and
yield
Map()
andSet()
data container classes- New
base32_encode
and decode functions - New
url_encode
and decode functions - Fraction of second in
sleep()
- Added
unix_socket_path
option tohttp()
function - Added
sender
option andscantime
result toScanSA()
function
- Function generators and
- SMTP server
- New
halonctl hsl memory list
and correspondingHSLMemoryListRequest
API - Settings for max messages, recipients and hops
- Test command for the asynchronous DNS resolver
halonctl resolver query
- High-resolution process runtime counter
process.elasped
- Active queue performance counters
queue.pickup.X
- Script error counters
servers.X.scripts.Y.errors
- New
spool.corrupt
setting for controlling handling of bad queue files - Queue suspend filters with
halonctl queue suspend list
andSuspendRequest
API
- New
Changes and improvements
- Improved performance for large active queue policy rate buckets and exclude lists
- Improved
smtpd
process shutdown - Improved SMTP command diagnostics ("in reply to") in bounces
- Added Original-Envelope-ID and Original-Recipient headers to bounces
- Consider all 2xx-codes successful in SMTP client
- File descriptor exhaustion error logging and handling improved
Integrated package
- Custom HTTP API endpoint hosting on the web admin page
- Ability to stop and start
smtpd
from the services section - Ability to add custom local DNS records (A/AAAA/MX/TXT and PTR) to built-in DNS resolver
- Ability to sort and search by finished (rather than received) time in message history
- Firewall rules (
ipfw
) may now be added to/cfg/rc.halon
startup script - Updated to FreeBSD 12.2-RELEASE with quarterly packages
Comments
0 comments
Article is closed for comments.