Diff of the two buildlogs:

--
--- b1/build.log	2025-03-03 05:05:06.243497886 +0000
+++ b2/build.log	2025-03-03 05:06:37.539365790 +0000
@@ -1,6 +1,6 @@
 I: pbuilder: network access will be disabled during build
-I: Current time: Sun Mar  2 17:00:20 -12 2025
-I: pbuilder-time-stamp: 1740978020
+I: Current time: Mon Apr  6 01:28:09 +14 2026
+I: pbuilder-time-stamp: 1775388489
 I: Building the build Environment
 I: extracting base tarball [/var/cache/pbuilder/unstable-reproducible-base.tgz]
 I: copying local configuration
@@ -24,52 +24,84 @@
 dpkg-source: info: applying 0001-Use_chasquid_user.patch
 I: Not using root during the build.
 I: Installing the build-deps
-I: user script /srv/workspace/pbuilder/1861360/tmp/hooks/D02_print_environment starting
+I: user script /srv/workspace/pbuilder/3221856/tmp/hooks/D01_modify_environment starting
+debug: Running on codethink03-arm64.
+I: Changing host+domainname to test build reproducibility
+I: Adding a custom variable just for the fun of it...
+I: Changing /bin/sh to bash
+'/bin/sh' -> '/bin/bash'
+lrwxrwxrwx 1 root root 9 Apr  5 11:28 /bin/sh -> /bin/bash
+I: Setting pbuilder2's login shell to /bin/bash
+I: Setting pbuilder2's GECOS to second user,second room,second work-phone,second home-phone,second other
+I: user script /srv/workspace/pbuilder/3221856/tmp/hooks/D01_modify_environment finished
+I: user script /srv/workspace/pbuilder/3221856/tmp/hooks/D02_print_environment starting
 I: set
-  BUILDDIR='/build/reproducible-path'
-  BUILDUSERGECOS='first user,first room,first work-phone,first home-phone,first other'
-  BUILDUSERNAME='pbuilder1'
-  BUILD_ARCH='arm64'
-  DEBIAN_FRONTEND='noninteractive'
+  BASH=/bin/sh
+  BASHOPTS=checkwinsize:cmdhist:complete_fullquote:extquote:force_fignore:globasciiranges:globskipdots:hostcomplete:interactive_comments:patsub_replacement:progcomp:promptvars:sourcepath
+  BASH_ALIASES=()
+  BASH_ARGC=()
+  BASH_ARGV=()
+  BASH_CMDS=()
+  BASH_LINENO=([0]="12" [1]="0")
+  BASH_LOADABLES_PATH=/usr/local/lib/bash:/usr/lib/bash:/opt/local/lib/bash:/usr/pkg/lib/bash:/opt/pkg/lib/bash:.
+  BASH_SOURCE=([0]="/tmp/hooks/D02_print_environment" [1]="/tmp/hooks/D02_print_environment")
+  BASH_VERSINFO=([0]="5" [1]="2" [2]="37" [3]="1" [4]="release" [5]="aarch64-unknown-linux-gnu")
+  BASH_VERSION='5.2.37(1)-release'
+  BUILDDIR=/build/reproducible-path
+  BUILDUSERGECOS='second user,second room,second work-phone,second home-phone,second other'
+  BUILDUSERNAME=pbuilder2
+  BUILD_ARCH=arm64
+  DEBIAN_FRONTEND=noninteractive
   DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=12 '
-  DISTRIBUTION='unstable'
-  HOME='/root'
-  HOST_ARCH='arm64'
+  DIRSTACK=()
+  DISTRIBUTION=unstable
+  EUID=0
+  FUNCNAME=([0]="Echo" [1]="main")
+  GROUPS=()
+  HOME=/root
+  HOSTNAME=i-capture-the-hostname
+  HOSTTYPE=aarch64
+  HOST_ARCH=arm64
   IFS=' 	
   '
-  INVOCATION_ID='2f85dcc3b33d4211b3cdfa3be7075ce1'
-  LANG='C'
-  LANGUAGE='en_US:en'
-  LC_ALL='C'
-  MAIL='/var/mail/root'
-  OPTIND='1'
-  PATH='/usr/sbin:/usr/bin:/sbin:/bin:/usr/games'
-  PBCURRENTCOMMANDLINEOPERATION='build'
-  PBUILDER_OPERATION='build'
-  PBUILDER_PKGDATADIR='/usr/share/pbuilder'
-  PBUILDER_PKGLIBDIR='/usr/lib/pbuilder'
-  PBUILDER_SYSCONFDIR='/etc'
-  PPID='1861360'
-  PS1='# '
-  PS2='> '
+  INVOCATION_ID=c7885dde8e4846f6903d8d567741c05f
+  LANG=C
+  LANGUAGE=nl_BE:nl
+  LC_ALL=C
+  MACHTYPE=aarch64-unknown-linux-gnu
+  MAIL=/var/mail/root
+  OPTERR=1
+  OPTIND=1
+  OSTYPE=linux-gnu
+  PATH=/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path
+  PBCURRENTCOMMANDLINEOPERATION=build
+  PBUILDER_OPERATION=build
+  PBUILDER_PKGDATADIR=/usr/share/pbuilder
+  PBUILDER_PKGLIBDIR=/usr/lib/pbuilder
+  PBUILDER_SYSCONFDIR=/etc
+  PIPESTATUS=([0]="0")
+  POSIXLY_CORRECT=y
+  PPID=3221856
   PS4='+ '
-  PWD='/'
-  SHELL='/bin/bash'
-  SHLVL='2'
-  SUDO_COMMAND='/usr/bin/timeout -k 18.1h 18h /usr/bin/ionice -c 3 /usr/bin/nice /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.wqXNL8h6/pbuilderrc_JemX --distribution unstable --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/unstable-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.wqXNL8h6/b1 --logfile b1/build.log chasquid_1.15.0-1.dsc'
-  SUDO_GID='109'
-  SUDO_UID='104'
-  SUDO_USER='jenkins'
-  TERM='unknown'
-  TZ='/usr/share/zoneinfo/Etc/GMT+12'
-  USER='root'
-  _='/usr/bin/systemd-run'
-  http_proxy='http://192.168.101.4:3128'
+  PWD=/
+  SHELL=/bin/bash
+  SHELLOPTS=braceexpand:errexit:hashall:interactive-comments:posix
+  SHLVL=3
+  SUDO_COMMAND='/usr/bin/timeout -k 24.1h 24h /usr/bin/ionice -c 3 /usr/bin/nice -n 11 /usr/bin/unshare --uts -- /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.wqXNL8h6/pbuilderrc_HZDa --distribution unstable --hookdir /etc/pbuilder/rebuild-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/unstable-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.wqXNL8h6/b2 --logfile b2/build.log chasquid_1.15.0-1.dsc'
+  SUDO_GID=109
+  SUDO_UID=104
+  SUDO_USER=jenkins
+  TERM=unknown
+  TZ=/usr/share/zoneinfo/Etc/GMT-14
+  UID=0
+  USER=root
+  _='I: set'
+  http_proxy=http://192.168.101.4:3128
 I: uname -a
-  Linux codethink04-arm64 6.1.0-31-cloud-arm64 #1 SMP Debian 6.1.128-1 (2025-02-07) aarch64 GNU/Linux
+  Linux i-capture-the-hostname 6.1.0-31-cloud-arm64 #1 SMP Debian 6.1.128-1 (2025-02-07) aarch64 GNU/Linux
 I: ls -l /bin
-  lrwxrwxrwx 1 root root 7 Nov 22 14:40 /bin -> usr/bin
-I: user script /srv/workspace/pbuilder/1861360/tmp/hooks/D02_print_environment finished
+  lrwxrwxrwx 1 root root 7 Nov 22  2024 /bin -> usr/bin
+I: user script /srv/workspace/pbuilder/3221856/tmp/hooks/D02_print_environment finished
  -> Attempting to satisfy build-dependencies
  -> Creating pbuilder-satisfydepends-dummy package
 Package: pbuilder-satisfydepends-dummy
@@ -175,7 +207,7 @@
 Get: 46 http://deb.debian.org/debian unstable/main arm64 golang-blitiri-go-log-dev all 1.1.0-1 [6724 B]
 Get: 47 http://deb.debian.org/debian unstable/main arm64 golang-blitiri-go-spf-dev all 1.5.1-1 [37.2 kB]
 Get: 48 http://deb.debian.org/debian unstable/main arm64 golang-blitiri-go-systemd-dev all 1.1.0-1 [6952 B]
-Fetched 75.0 MB in 1s (57.1 MB/s)
+Fetched 75.0 MB in 0s (184 MB/s)
 Preconfiguring packages ...
 Selecting previously unselected package sensible-utils.
 (Reading database ... 
(Reading database ... 5%
(Reading database ... 10%
(Reading database ... 15%
(Reading database ... 20%
(Reading database ... 25%
(Reading database ... 30%
(Reading database ... 35%
(Reading database ... 40%
(Reading database ... 45%
(Reading database ... 50%
(Reading database ... 55%
(Reading database ... 60%
(Reading database ... 65%
(Reading database ... 70%
(Reading database ... 75%
(Reading database ... 80%
(Reading database ... 85%
(Reading database ... 90%
(Reading database ... 95%
(Reading database ... 100%
(Reading database ... 19892 files and directories currently installed.)
@@ -382,7 +414,11 @@
 Building tag database...
  -> Finished parsing the build-deps
 I: Building the package
-I: Running cd /build/reproducible-path/chasquid-1.15.0/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-genchanges -S  > ../chasquid_1.15.0-1_source.changes
+I: user script /srv/workspace/pbuilder/3221856/tmp/hooks/A99_set_merged_usr starting
+Not re-configuring usrmerge for unstable
+I: user script /srv/workspace/pbuilder/3221856/tmp/hooks/A99_set_merged_usr finished
+hostname: Name or service not known
+I: Running cd /build/reproducible-path/chasquid-1.15.0/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-genchanges -S  > ../chasquid_1.15.0-1_source.changes
 dpkg-buildpackage: info: source package chasquid
 dpkg-buildpackage: info: source version 1.15.0-1
 dpkg-buildpackage: info: source distribution unstable
@@ -403,47 +439,47 @@
 make[1]: Entering directory '/build/reproducible-path/chasquid-1.15.0'
 dh_auto_build -- -ldflags " -X main.version=1.15.0-1 -X main.sourceDateTs=1737288581"
 	cd obj-aarch64-linux-gnu && go install -trimpath -v -p 12 -ldflags " -X main.version=1.15.0-1 -X main.sourceDateTs=1737288581" blitiri.com.ar/go/chasquid blitiri.com.ar/go/chasquid/cmd/chasquid-util blitiri.com.ar/go/chasquid/cmd/mda-lmtp blitiri.com.ar/go/chasquid/cmd/smtp-check blitiri.com.ar/go/chasquid/internal/aliases blitiri.com.ar/go/chasquid/internal/auth blitiri.com.ar/go/chasquid/internal/config blitiri.com.ar/go/chasquid/internal/courier blitiri.com.ar/go/chasquid/internal/dkim blitiri.com.ar/go/chasquid/internal/domaininfo blitiri.com.ar/go/chasquid/internal/dovecot blitiri.com.ar/go/chasquid/internal/envelope blitiri.com.ar/go/chasquid/internal/expvarom blitiri.com.ar/go/chasquid/internal/haproxy blitiri.com.ar/go/chasquid/internal/localrpc blitiri.com.ar/go/chasquid/internal/maillog blitiri.com.ar/go/chasquid/internal/nettrace blitiri.com.ar/go/chasquid/internal/normalize blitiri.com.ar/go/chasquid/internal/protoio blitiri.com.ar/go/chasquid/internal/protoio/testpb blitiri.com.ar/go/chasquid/internal/queue blitiri.com.ar/go/chasquid/internal/safeio blitiri.com.ar/go/chasquid/internal/set blitiri.com.ar/go/chasquid/internal/smtp blitiri.com.ar/go/chasquid/internal/smtpsrv blitiri.com.ar/go/chasquid/internal/sts blitiri.com.ar/go/chasquid/internal/testlib blitiri.com.ar/go/chasquid/internal/tlsconst blitiri.com.ar/go/chasquid/internal/trace blitiri.com.ar/go/chasquid/internal/userdb
-internal/byteorder
-internal/msan
+internal/profilerecord
 internal/coverage/rtcov
+internal/asan
+internal/msan
 internal/godebugs
-encoding
-internal/unsafeheader
 internal/goarch
 internal/goexperiment
+encoding
+internal/cpu
+internal/runtime/math
 cmp
-internal/profilerecord
 internal/itoa
-internal/cpu
+internal/abi
+internal/runtime/syscall
 math/bits
-unicode/utf8
+internal/byteorder
 internal/goos
+unicode/utf8
 sync/atomic
-internal/asan
-internal/abi
-internal/runtime/syscall
-internal/chacha8rand
-internal/runtime/math
+internal/unsafeheader
 unicode
 log/internal
 internal/nettrace
 google.golang.org/protobuf/internal/flags
-math
 unicode/utf16
-google.golang.org/protobuf/internal/set
+internal/chacha8rand
 container/ring
-container/list
 crypto/internal/fips140/alias
+container/list
+google.golang.org/protobuf/internal/set
 crypto/internal/fips140deps/byteorder
-crypto/internal/boring/sig
-vendor/golang.org/x/crypto/cryptobyte/asn1
+math
 crypto/internal/fips140/subtle
-vendor/golang.org/x/crypto/internal/alias
-blitiri.com.ar/go/chasquid/internal/set
+crypto/internal/boring/sig
 internal/bytealg
 internal/runtime/atomic
 internal/runtime/sys
 crypto/internal/fips140deps/cpu
+vendor/golang.org/x/crypto/cryptobyte/asn1
+vendor/golang.org/x/crypto/internal/alias
+blitiri.com.ar/go/chasquid/internal/set
 internal/runtime/exithook
 internal/stringslite
 internal/race
@@ -452,56 +488,59 @@
 runtime
 internal/reflectlite
 iter
-sync
 weak
 crypto/subtle
+sync
 slices
 maps
 errors
 sort
 internal/bisect
+google.golang.org/protobuf/internal/pragma
 internal/testlog
 internal/singleflight
 unique
-google.golang.org/protobuf/internal/pragma
-runtime/cgo
-strconv
 io
 internal/oserror
-path
-internal/godebug
 vendor/golang.org/x/net/dns/dnsmessage
+strconv
 math/rand/v2
+runtime/cgo
+path
 syscall
-strings
+internal/godebug
 hash
-hash/fnv
-hash/crc32
-math/rand
-crypto/internal/fips140deps/godebug
+strings
 golang.org/x/text/internal/tag
 bytes
 crypto/internal/randutil
-reflect
 net/netip
+crypto
+hash/fnv
+reflect
+crypto/internal/fips140deps/godebug
+math/rand
+hash/crc32
+bufio
 html
 regexp/syntax
-crypto
 crypto/internal/fips140
 crypto/internal/impl
-net/http/internal/ascii
-bufio
 vendor/golang.org/x/text/transform
-golang.org/x/text/transform
-crypto/internal/fips140/sha256
 crypto/internal/fips140/sha3
+crypto/internal/fips140/sha256
 crypto/internal/fips140/sha512
 crypto/tls/internal/fips140tls
-golang.org/x/text/runes
-golang.org/x/text/width
+net/http/internal/ascii
+golang.org/x/text/transform
 crypto/sha3
 crypto/internal/fips140hash
+internal/syscall/execenv
+internal/syscall/unix
 crypto/internal/fips140/hmac
+time
+golang.org/x/text/runes
+golang.org/x/text/width
 crypto/internal/fips140/check
 crypto/internal/fips140/aes
 crypto/internal/fips140/nistec/fiat
@@ -510,17 +549,14 @@
 crypto/internal/fips140/hkdf
 crypto/internal/fips140/tls12
 crypto/internal/fips140/tls13
-time
-internal/syscall/unix
-internal/syscall/execenv
 regexp
 crypto/internal/fips140/edwards25519
 io/fs
 internal/poll
 context
-crypto/internal/fips140/nistec
 internal/filepathlite
 embed
+crypto/internal/fips140/nistec
 google.golang.org/protobuf/internal/editiondefaults
 os
 internal/fmtsort
@@ -528,146 +564,146 @@
 encoding/base64
 vendor/golang.org/x/crypto/internal/poly1305
 golang.org/x/sys/unix
-encoding/pem
 fmt
-net
+blitiri.com.ar/go/chasquid/internal/safeio
+internal/sysinfo
 path/filepath
 google.golang.org/protobuf/internal/detrand
-blitiri.com.ar/go/chasquid/internal/safeio
-crypto/internal/sysrand
+encoding/pem
 os/signal
-internal/sysinfo
+crypto/internal/sysrand
 crypto/internal/entropy
 crypto/internal/fips140/drbg
 os/exec
-crypto/internal/fips140/aes/gcm
 crypto/internal/fips140only
 crypto/internal/fips140/ecdh
+crypto/internal/fips140/aes/gcm
 crypto/internal/fips140/ecdsa
 crypto/internal/fips140/ed25519
 crypto/internal/fips140/mlkem
 crypto/internal/fips140/rsa
 crypto/md5
 crypto/rc4
+net
 crypto/cipher
 flag
-log
 google.golang.org/protobuf/internal/errors
+text/template/parse
+log
 go/token
 compress/flate
-encoding/json
 google.golang.org/protobuf/internal/version
 net/url
-text/template/parse
-math/big
-google.golang.org/protobuf/encoding/protowire
+encoding/json
 crypto/internal/boring
+google.golang.org/protobuf/encoding/protowire
+math/big
 crypto/aes
 crypto/des
-google.golang.org/protobuf/reflect/protoreflect
 crypto/ecdh
+google.golang.org/protobuf/reflect/protoreflect
 crypto/sha512
 crypto/hmac
 vendor/golang.org/x/crypto/chacha20
 crypto/sha1
 crypto/sha256
-encoding/hex
-compress/gzip
 vendor/golang.org/x/text/unicode/bidi
+compress/gzip
+encoding/hex
 vendor/golang.org/x/text/unicode/norm
 vendor/golang.org/x/net/http2/hpack
 mime
-mime/quotedprintable
 vendor/golang.org/x/crypto/chacha20poly1305
+text/template
+mime/quotedprintable
 net/http/internal
 blitiri.com.ar/go/chasquid/internal/envelope
-text/template
 golang.org/x/text/unicode/bidi
 golang.org/x/text/unicode/norm
-vendor/golang.org/x/text/secure/bidirule
 golang.org/x/text/internal/language
-blitiri.com.ar/go/chasquid/internal/tlsconst
-golang.org/x/crypto/pbkdf2
-golang.org/x/crypto/scrypt
-internal/profile
+vendor/golang.org/x/text/secure/bidirule
 google.golang.org/protobuf/internal/encoding/messageset
 google.golang.org/protobuf/internal/strs
 google.golang.org/protobuf/internal/genid
-google.golang.org/protobuf/internal/encoding/text
 google.golang.org/protobuf/internal/order
+google.golang.org/protobuf/internal/encoding/text
 google.golang.org/protobuf/reflect/protoregistry
 google.golang.org/protobuf/runtime/protoiface
 google.golang.org/protobuf/internal/descfmt
 google.golang.org/protobuf/internal/descopts
 google.golang.org/protobuf/internal/protolazy
+golang.org/x/text/secure/bidirule
+vendor/golang.org/x/net/idna
+blitiri.com.ar/go/chasquid/internal/tlsconst
+golang.org/x/text/internal/language/compact
+golang.org/x/crypto/pbkdf2
+internal/profile
+html/template
+text/tabwriter
 crypto/rand
 crypto/elliptic
 crypto/internal/boring/bbig
+google.golang.org/protobuf/proto
+google.golang.org/protobuf/internal/encoding/defval
 encoding/asn1
-crypto/dsa
 crypto/ed25519
 crypto/internal/hpke
 crypto/rsa
-vendor/golang.org/x/net/idna
-golang.org/x/text/secure/bidirule
-golang.org/x/text/internal/language/compact
-google.golang.org/protobuf/internal/encoding/defval
-text/tabwriter
-google.golang.org/protobuf/proto
-html/template
+crypto/dsa
+golang.org/x/text/language
+golang.org/x/net/idna
+golang.org/x/crypto/scrypt
+runtime/pprof
 runtime/trace
 runtime/debug
 golang.org/x/term
-runtime/pprof
-golang.org/x/text/language
-golang.org/x/net/idna
+google.golang.org/protobuf/encoding/prototext
+google.golang.org/protobuf/internal/filedesc
 vendor/golang.org/x/crypto/cryptobyte
 crypto/x509/pkix
-testing
-crypto/ecdsa
 golang.org/x/text/internal
 golang.org/x/text/cases
-google.golang.org/protobuf/encoding/prototext
-google.golang.org/protobuf/internal/filedesc
-golang.org/x/text/secure/precis
+testing
+crypto/ecdsa
 blitiri.com.ar/go/chasquid/internal/protoio
+golang.org/x/text/secure/precis
 google.golang.org/protobuf/internal/encoding/tag
-blitiri.com.ar/go/chasquid/internal/normalize
 google.golang.org/protobuf/internal/impl
+blitiri.com.ar/go/chasquid/internal/normalize
 log/syslog
-crypto/x509
 net/textproto
-vendor/golang.org/x/net/http/httpproxy
+crypto/x509
 blitiri.com.ar/go/chasquid/internal/haproxy
 blitiri.com.ar/go/spf
 blitiri.com.ar/go/systemd
+vendor/golang.org/x/net/http/httpproxy
 blitiri.com.ar/go/log
 vendor/golang.org/x/net/http/httpguts
 mime/multipart
 blitiri.com.ar/go/chasquid/internal/dovecot
-net/mail
 blitiri.com.ar/go/chasquid/cmd/mda-lmtp
-crypto/tls
-blitiri.com.ar/go/chasquid/internal/dkim
+net/mail
 google.golang.org/protobuf/internal/filetype
 google.golang.org/protobuf/runtime/protoimpl
 blitiri.com.ar/go/chasquid/internal/config
 blitiri.com.ar/go/chasquid/internal/userdb
 blitiri.com.ar/go/chasquid/internal/protoio/testpb
+blitiri.com.ar/go/chasquid/internal/dkim
+crypto/tls
 net/http/httptrace
 net/smtp
 blitiri.com.ar/go/chasquid/internal/testlib
 net/http
 blitiri.com.ar/go/chasquid/internal/smtp
-blitiri.com.ar/go/chasquid/internal/nettrace
 expvar
 golang.org/x/net/context/ctxhttp
 net/http/pprof
+blitiri.com.ar/go/chasquid/internal/nettrace
 blitiri.com.ar/go/chasquid/internal/trace
 blitiri.com.ar/go/chasquid/internal/domaininfo
 blitiri.com.ar/go/chasquid/internal/localrpc
-blitiri.com.ar/go/chasquid/internal/maillog
 blitiri.com.ar/go/chasquid/internal/auth
+blitiri.com.ar/go/chasquid/internal/maillog
 blitiri.com.ar/go/chasquid/internal/expvarom
 blitiri.com.ar/go/chasquid/cmd/chasquid-util
 blitiri.com.ar/go/chasquid/internal/sts
@@ -701,7 +737,7 @@
 === RUN   TestTooMuchRecursion
 --- PASS: TestTooMuchRecursion (0.00s)
 === RUN   TestTooMuchRecursionOnCatchAll
---- PASS: TestTooMuchRecursionOnCatchAll (0.02s)
+--- PASS: TestTooMuchRecursionOnCatchAll (0.00s)
 === RUN   TestAddFile
 --- PASS: TestAddFile (0.00s)
 === RUN   TestRichFile
@@ -713,7 +749,7 @@
 _ aliases.go:544     Hook.Alias-Resolve a@localA: error: exit status 1
 _ aliases.go:544     Hook.Alias-Resolve *@localA: error: exit status 1
 _ aliases.go:544     Hook.Alias-Resolve a@localA: error: exit status 1
---- PASS: TestHookError (0.09s)
+--- PASS: TestHookError (0.01s)
 === RUN   FuzzReader
 === RUN   FuzzReader/seed#0
 === RUN   FuzzReader/1c24d2215db69748c6fd16797673ad11ebc7e6167fe1bc1f54c6959ec10407b6
@@ -729,7 +765,7 @@
     --- PASS: FuzzReader/c9c80ba9f513841cb081fe9bb7439d36f9f7a06bb999d4c39441991ccc878a9e (0.00s)
     --- PASS: FuzzReader/d40a98862ed393eb712e47a91bcef18e6f24cf368bb4bd248c7a7101ef8e178d (0.00s)
 PASS
-ok  	blitiri.com.ar/go/chasquid/internal/aliases	0.180s
+ok  	blitiri.com.ar/go/chasquid/internal/aliases	0.035s
 === RUN   TestDecodeResponse
     auth_test.go:56: OK: "" failed with response pieces != 3, as per RFC
     auth_test.go:56: OK: "\x00" failed with response pieces != 3, as per RFC
@@ -742,11 +778,11 @@
     auth_test.go:56: OK: "\xffa@b\x00\xffa@b\x00pass" failed with bidirule: failed Bidi Rule
 --- PASS: TestDecodeResponse (0.00s)
 === RUN   TestAuthenticate
---- PASS: TestAuthenticate (0.91s)
+--- PASS: TestAuthenticate (0.47s)
 === RUN   TestInterfaces
 --- PASS: TestInterfaces (0.00s)
 === RUN   TestMultipleBackends
---- PASS: TestMultipleBackends (0.20s)
+--- PASS: TestMultipleBackends (0.19s)
 === RUN   TestErrors
 --- PASS: TestErrors (0.00s)
 === RUN   TestReload
@@ -775,45 +811,45 @@
     --- PASS: FuzzDecodeResponse/d9aa9c617d1f5b3021aca758b9d896d136e3b16ed53233d02abffd02aa73ffa4 (0.00s)
     --- PASS: FuzzDecodeResponse/de05c7993312bab83e8114e9d9ced331c49822dc55c1a353f1cc9718a28226e7 (0.00s)
 PASS
-ok  	blitiri.com.ar/go/chasquid/internal/auth	1.172s
+ok  	blitiri.com.ar/go/chasquid/internal/auth	0.682s
 === RUN   TestEmptyStruct
---- PASS: TestEmptyStruct (0.01s)
+--- PASS: TestEmptyStruct (0.00s)
 === RUN   TestEmptyConfig
-    testlib.go:32: test directory: "/tmp/testlib_955648576"
+    testlib.go:32: test directory: "/tmp/testlib_3595664129"
 --- PASS: TestEmptyConfig (0.00s)
 === RUN   TestFullConfig
-    testlib.go:32: test directory: "/tmp/testlib_734966506"
+    testlib.go:32: test directory: "/tmp/testlib_910204209"
 --- PASS: TestFullConfig (0.00s)
 === RUN   TestErrorLoading
 --- PASS: TestErrorLoading (0.00s)
 === RUN   TestBrokenConfig
-    testlib.go:32: test directory: "/tmp/testlib_777336409"
+    testlib.go:32: test directory: "/tmp/testlib_1840867922"
 --- PASS: TestBrokenConfig (0.00s)
 === RUN   TestBrokenOverride
-    testlib.go:32: test directory: "/tmp/testlib_3552437046"
+    testlib.go:32: test directory: "/tmp/testlib_2517187666"
 --- PASS: TestBrokenOverride (0.00s)
 PASS
-ok  	blitiri.com.ar/go/chasquid/internal/config	0.072s
+ok  	blitiri.com.ar/go/chasquid/internal/config	0.022s
 === RUN   TestMDA
-    testlib.go:32: test directory: "/tmp/testlib_3921358099"
---- PASS: TestMDA (0.05s)
+    testlib.go:32: test directory: "/tmp/testlib_1166652757"
+--- PASS: TestMDA (0.00s)
 === RUN   TestMDATimeout
 _ mda.go:73          Courier.MDA to@local: error: operation timed out
---- PASS: TestMDATimeout (0.12s)
+--- PASS: TestMDATimeout (0.10s)
 === RUN   TestMDABadCommandLine
 _ mda.go:86          Courier.MDA to: error: MDA delivery failed: exec: \"thisdoesnotexist\": executable file not found in $PATH - \"\"
 _ mda.go:86          Courier.MDA to: error: MDA delivery failed: exit status 1 - \"cat: unrecognized option '--fail_unknown_option'\\nTry 'cat --help' for more information.\\n\"
---- PASS: TestMDABadCommandLine (0.01s)
+--- PASS: TestMDABadCommandLine (0.00s)
 === RUN   TestExitCode
     mda_test.go:71: util/exitcode not found, running from outside repo?
 --- SKIP: TestExitCode (0.00s)
 === RUN   TestSanitize
 --- PASS: TestSanitize (0.00s)
 === RUN   TestSMTP
-    testlib.go:32: test directory: "/tmp/testlib_1061472587"
-    testlib.go:32: test directory: "/tmp/testlib_312559302"
-_ smtp.go:127        Courier.SMTP to@to: error: Could not dial: dial tcp: address ::::40063: too many colons in address
-_ smtp.go:101        Courier.SMTP to@to: error: \":::\" returned transient error: Could not dial: dial tcp: address ::::40063: too many colons in address
+    testlib.go:32: test directory: "/tmp/testlib_2273667336"
+    testlib.go:32: test directory: "/tmp/testlib_3070410934"
+_ smtp.go:127        Courier.SMTP to@to: error: Could not dial: dial tcp: address ::::42989: too many colons in address
+_ smtp.go:101        Courier.SMTP to@to: error: \":::\" returned transient error: Could not dial: dial tcp: address ::::42989: too many colons in address
     fakeserver_test.go:98: fakeServer got connection
     fakeserver_test.go:109: fakeServer read: "EHLO hello"
     fakeserver_test.go:109: fakeServer read: "MAIL FROM:<me@me>"
@@ -821,26 +857,26 @@
     fakeserver_test.go:109: fakeServer read: "DATA"
     fakeserver_test.go:109: fakeServer read: "QUIT"
     fakeserver_test.go:105: fakeServer exiting: EOF
---- PASS: TestSMTP (0.39s)
+--- PASS: TestSMTP (0.15s)
 === RUN   TestSMTPErrors
-    testlib.go:32: test directory: "/tmp/testlib_955267280"
-    testlib.go:32: test directory: "/tmp/testlib_1128247341"
+    testlib.go:32: test directory: "/tmp/testlib_224215634"
+    testlib.go:32: test directory: "/tmp/testlib_1945656553"
     fakeserver_test.go:98: fakeServer got connection
-_ smtp.go:138        Courier.SMTP to@to: error: Error saying hello: write tcp 127.0.0.1:39698->127.0.0.1:45983: i/o timeout
-_ smtp.go:101        Courier.SMTP to@to: error: \"127.0.0.1\" returned transient error: Error saying hello: write tcp 127.0.0.1:39698->127.0.0.1:45983: i/o timeout
-_ smtp.go:105        Courier.SMTP to@to: error: all MXs returned transient failures (last: Error saying hello: write tcp 127.0.0.1:39698->127.0.0.1:45983: i/o timeout)
-    smtp_test.go:140: failed as expected: all MXs returned transient failures (last: Error saying hello: write tcp 127.0.0.1:39698->127.0.0.1:45983: i/o timeout)
+_ smtp.go:138        Courier.SMTP to@to: error: Error saying hello: write tcp 127.0.0.1:37588->127.0.0.1:37261: i/o timeout
+_ smtp.go:101        Courier.SMTP to@to: error: \"127.0.0.1\" returned transient error: Error saying hello: write tcp 127.0.0.1:37588->127.0.0.1:37261: i/o timeout
+_ smtp.go:105        Courier.SMTP to@to: error: all MXs returned transient failures (last: Error saying hello: write tcp 127.0.0.1:37588->127.0.0.1:37261: i/o timeout)
+    smtp_test.go:140: failed as expected: all MXs returned transient failures (last: Error saying hello: write tcp 127.0.0.1:37588->127.0.0.1:37261: i/o timeout)
     fakeserver_test.go:105: fakeServer exiting: EOF
-    testlib.go:32: test directory: "/tmp/testlib_1095127635"
-    testlib.go:32: test directory: "/tmp/testlib_3685953937"
+    testlib.go:32: test directory: "/tmp/testlib_504269876"
+    testlib.go:32: test directory: "/tmp/testlib_2241948322"
     fakeserver_test.go:98: fakeServer got connection
     fakeserver_test.go:109: fakeServer read: "EHLO hello"
     fakeserver_test.go:109: fakeServer read: "MAIL FROM:<me@me>"
 _ smtp.go:202        Courier.SMTP to@to: error: MAIL+RCPT 501 mail error
     smtp_test.go:140: failed as expected: MAIL+RCPT 501 mail error
     fakeserver_test.go:105: fakeServer exiting: EOF
-    testlib.go:32: test directory: "/tmp/testlib_3174190348"
-    testlib.go:32: test directory: "/tmp/testlib_4257773419"
+    testlib.go:32: test directory: "/tmp/testlib_2941932873"
+    testlib.go:32: test directory: "/tmp/testlib_1964429975"
     fakeserver_test.go:98: fakeServer got connection
     fakeserver_test.go:109: fakeServer read: "EHLO hello"
     fakeserver_test.go:109: fakeServer read: "MAIL FROM:<me@me>"
@@ -848,8 +884,8 @@
 _ smtp.go:202        Courier.SMTP to@to: error: MAIL+RCPT 501 rcpt error
     smtp_test.go:140: failed as expected: MAIL+RCPT 501 rcpt error
     fakeserver_test.go:105: fakeServer exiting: EOF
-    testlib.go:32: test directory: "/tmp/testlib_726889671"
-    testlib.go:32: test directory: "/tmp/testlib_2072397987"
+    testlib.go:32: test directory: "/tmp/testlib_2425052958"
+    testlib.go:32: test directory: "/tmp/testlib_743778379"
     fakeserver_test.go:98: fakeServer got connection
     fakeserver_test.go:109: fakeServer read: "EHLO hello"
     fakeserver_test.go:109: fakeServer read: "MAIL FROM:<me@me>"
@@ -858,8 +894,8 @@
 _ smtp.go:207        Courier.SMTP to@to: error: DATA 554 data error
     smtp_test.go:140: failed as expected: DATA 554 data error
     fakeserver_test.go:132: fakeServer exiting: unexpected EOF
-    testlib.go:32: test directory: "/tmp/testlib_191182027"
-    testlib.go:32: test directory: "/tmp/testlib_3630351190"
+    testlib.go:32: test directory: "/tmp/testlib_509358629"
+    testlib.go:32: test directory: "/tmp/testlib_1491508998"
     fakeserver_test.go:98: fakeServer got connection
     fakeserver_test.go:109: fakeServer read: "EHLO hello"
     fakeserver_test.go:109: fakeServer read: "MAIL FROM:<me@me>"
@@ -868,9 +904,9 @@
 _ smtp.go:216        Courier.SMTP to@to: error: DATA closing 551 data response error
     smtp_test.go:140: failed as expected: DATA closing 551 data response error
     fakeserver_test.go:105: fakeServer exiting: EOF
---- PASS: TestSMTPErrors (2.01s)
+--- PASS: TestSMTPErrors (1.34s)
 === RUN   TestNoMXServer
-    testlib.go:32: test directory: "/tmp/testlib_292400569"
+    testlib.go:32: test directory: "/tmp/testlib_583148950"
 _ smtp.go:82         Courier.SMTP to@to: error: Could not find mail server: <nil>
     smtp_test.go:158: got permanent failure, as expected: Could not find mail server: <nil>
 --- PASS: TestNoMXServer (0.00s)
@@ -885,8 +921,8 @@
 === RUN   TestLookupInvalidDomain
 --- PASS: TestLookupInvalidDomain (0.00s)
 === RUN   TestTLS
-    testlib.go:32: test directory: "/tmp/testlib_1100255031"
-    testlib.go:32: test directory: "/tmp/testlib_2604704978"
+    testlib.go:32: test directory: "/tmp/testlib_1332141867"
+    testlib.go:32: test directory: "/tmp/testlib_3006115455"
     fakeserver_test.go:98: fakeServer got connection
     fakeserver_test.go:109: fakeServer read: "EHLO hello"
     fakeserver_test.go:109: fakeServer read: "STARTTLS"
@@ -897,7 +933,7 @@
     fakeserver_test.go:109: fakeServer read: "DATA"
     fakeserver_test.go:109: fakeServer read: "QUIT"
     fakeserver_test.go:105: fakeServer exiting: EOF
-    testlib.go:32: test directory: "/tmp/testlib_329749913"
+    testlib.go:32: test directory: "/tmp/testlib_724074127"
     fakeserver_test.go:98: fakeServer got connection
     fakeserver_test.go:109: fakeServer read: "EHLO hello"
 _ domaininfo.go:145  DomainInfo.Outgoing to: error: to outgoing denied: PLAIN < TLS_INSECURE
@@ -905,26 +941,26 @@
 _ smtp.go:101        Courier.SMTP to@to: error: \"localhost\" returned transient error: Security level check failed (level:PLAIN)
 _ smtp.go:105        Courier.SMTP to@to: error: all MXs returned transient failures (last: Security level check failed (level:PLAIN))
     fakeserver_test.go:105: fakeServer exiting: EOF
---- PASS: TestTLS (0.56s)
+--- PASS: TestTLS (0.24s)
 === RUN   TestTLSError
-    testlib.go:32: test directory: "/tmp/testlib_3841949669"
-    testlib.go:32: test directory: "/tmp/testlib_2614519777"
+    testlib.go:32: test directory: "/tmp/testlib_1133474888"
+    testlib.go:32: test directory: "/tmp/testlib_1666278582"
     fakeserver_test.go:98: fakeServer got connection
     fakeserver_test.go:109: fakeServer read: "EHLO hello"
     fakeserver_test.go:109: fakeServer read: "STARTTLS"
 _ smtp.go:171        Courier.SMTP to@to: error: TLS error, retrying without TLS: 500 starttls err
-    fakeserver_test.go:98: fakeServer got connection
     fakeserver_test.go:105: fakeServer exiting: EOF
+    fakeserver_test.go:98: fakeServer got connection
     fakeserver_test.go:109: fakeServer read: "EHLO hello"
     fakeserver_test.go:109: fakeServer read: "MAIL FROM:<me@me>"
     fakeserver_test.go:109: fakeServer read: "RCPT TO:<to@to>"
     fakeserver_test.go:109: fakeServer read: "DATA"
     fakeserver_test.go:109: fakeServer read: "QUIT"
     fakeserver_test.go:105: fakeServer exiting: EOF
---- PASS: TestTLSError (0.64s)
+--- PASS: TestTLSError (0.04s)
 === RUN   TestSTSPolicyEnforcement
-    testlib.go:32: test directory: "/tmp/testlib_316055742"
-    testlib.go:32: test directory: "/tmp/testlib_985756301"
+    testlib.go:32: test directory: "/tmp/testlib_3795094555"
+    testlib.go:32: test directory: "/tmp/testlib_2935033755"
     fakeserver_test.go:98: fakeServer got connection
     fakeserver_test.go:109: fakeServer read: "EHLO hello"
     fakeserver_test.go:109: fakeServer read: "STARTTLS"
@@ -932,7 +968,7 @@
 _ domaininfo.go:153  DomainInfo.Outgoing to: to outgoing level raised: TLS_INSECURE > PLAIN
 _ smtp.go:194        test test: error: invalid security level (TLS_INSECURE) for STS policy
     fakeserver_test.go:105: fakeServer exiting: EOF
-    testlib.go:32: test directory: "/tmp/testlib_17340916"
+    testlib.go:32: test directory: "/tmp/testlib_1277969754"
     fakeserver_test.go:98: fakeServer got connection
     fakeserver_test.go:109: fakeServer read: "EHLO hello"
     fakeserver_test.go:109: fakeServer read: "STARTTLS"
@@ -943,11 +979,11 @@
     fakeserver_test.go:109: fakeServer read: "DATA"
     fakeserver_test.go:109: fakeServer read: "QUIT"
     fakeserver_test.go:105: fakeServer exiting: EOF
---- PASS: TestSTSPolicyEnforcement (0.63s)
+--- PASS: TestSTSPolicyEnforcement (0.25s)
 PASS
-ok  	blitiri.com.ar/go/chasquid/internal/courier	4.503s
+ok  	blitiri.com.ar/go/chasquid/internal/courier	2.150s
 === RUN   TestStringToCanonicalization
---- PASS: TestStringToCanonicalization (0.02s)
+--- PASS: TestStringToCanonicalization (0.00s)
 === RUN   TestSimpleBody
 --- PASS: TestSimpleBody (0.00s)
 === RUN   TestRelaxBody
@@ -971,7 +1007,7 @@
 === RUN   TestSkipBadRecords
 --- PASS: TestSkipBadRecords (0.00s)
 === RUN   TestParsePublicKey
---- PASS: TestParsePublicKey (0.03s)
+--- PASS: TestParsePublicKey (0.01s)
 === RUN   TestPublicKeyMatches
 --- PASS: TestPublicKeyMatches (0.00s)
 === RUN   TestStrictDomainCheck
@@ -981,7 +1017,7 @@
     file_test.go:50: Loaded DNS results: map[string][]string{"brisbane._domainkey.football.example.com":[]string{"   v=DKIM1; k=ed25519;   p=11qYAYKxCrfVS/7TyWQHOg7hcvPapiMlrwIaaPcHURo="}, "test._domainkey.football.example.com":[]string{"   v=DKIM1; k=rsa;   p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDkHlOQoBTzWRiGs5V6NpP3idY6Wk08a5qhdR6wy5bdOKb2jLQiY/J16JYi0Qvx/byYzCNb3W91y3FutACDfzwQ/BC/e/8uBsCR+yz1Lxj+PL6lHvqMKrM3rG4hstT5QjvHO9PzoxZyVYLzBfO2EeC3Ip3G+2kryOTIKT+l/K4w3QIDAQAB"}}
     file_test.go:50: Loaded DNS errors: map[]
     file_test.go:55: Message: "DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed;\r\n "
-    file_test.go:56: Want result: &{Found:2 Valid:2 Results:[0x40002978c0 0x4000297920]}
+    file_test.go:56: Want result: &{Found:2 Valid:2 Results:[0x40002a5ec0 0x40002a5f20]}
     file_test.go:57: Want error: <nil>
     context.go:17: Found DKIM-Signature header:  v=1; a=ed25519-sha256; c=relaxed/relaxed;
          d=football.example.com; i=@football.example.com;
@@ -1025,7 +1061,7 @@
     file_test.go:50: Loaded DNS results: map[string][]string{"brisbane._domainkey.football.example.com":[]string{"   v=DKIM1; k=ed25519;   p=11qYAYKxCrfVS/7TyWQHOg7hcvPapiMlrwIaaPcHURo="}, "test._domainkey.football.example.com":[]string{"   v=DKIM1; k=rsa;   p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDkHlOQoBTzWRiGs5V6NpP3idY6Wk08a5qhdR6wy5bdOKb2jLQiY/J16JYi0Qvx/byYzCNb3W91y3FutACDfzwQ/BC/e/8uBsCR+yz1Lxj+PL6lHvqMKrM3rG4hstT5QjvHO9PzoxZyVYLzBfO2EeC3Ip3G+2kryOTIKT+l/K4w3QIDAQAB"}}
     file_test.go:50: Loaded DNS errors: map[]
     file_test.go:55: Message: "DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed;\r\n "
-    file_test.go:56: Want result: &{Found:5 Valid:5 Results:[0x40002e0180 0x40002e01e0 0x40002e0240 0x40002e02a0 0x40002e0300]}
+    file_test.go:56: Want result: &{Found:5 Valid:5 Results:[0x40002cc780 0x40002cc7e0 0x40002cc840 0x40002cc8a0 0x40002cc900]}
     file_test.go:57: Want error: <nil>
     context.go:17: Found DKIM-Signature header:  v=1; a=ed25519-sha256; c=relaxed/relaxed;
          d=football.example.com; i=@football.example.com;
@@ -1137,7 +1173,7 @@
     file_test.go:50: Loaded DNS results: map[string][]string{}
     file_test.go:50: Loaded DNS errors: map[]
     file_test.go:55: Message: "DKIM-Signature: v=8; a=ed25519-sha256; c=relaxed/relaxed;\r\n "
-    file_test.go:56: Want result: &{Found:1 Valid:0 Results:[0x40002e0f00]}
+    file_test.go:56: Want result: &{Found:1 Valid:0 Results:[0x40002cd500]}
     file_test.go:57: Want error: <nil>
     context.go:17: Found DKIM-Signature header:  v=8; a=ed25519-sha256; c=relaxed/relaxed;
          d=football.example.com; i=@football.example.com;
@@ -1151,7 +1187,7 @@
     file_test.go:50: Loaded DNS results: map[string][]string{"test._domainkey.football.example.com":[]string{"   v=DKIM1; k=rsa;   p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDkHlOQoBTzWRiGs5V6NpP3idY6Wk08a5qhdR6wy5bdOKb2jLQiY/J16JYi0Qvx/byYzCNb3W91y3FutACDfzwQ/BC/e/8uBsCR+yz1Lxj+PL6lHvqMKrM3rG4hstT5QjvHO9PzoxZyVYLzBfO2EeC3Ip3G+2kryOTIKT+l/K4w3QIDAQAB"}}
     file_test.go:50: Loaded DNS errors: map[brisbane._domainkey.football.example.com:lookup : temporary error (for testing)]
     file_test.go:55: Message: "DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed;\r\n "
-    file_test.go:56: Want result: &{Found:2 Valid:1 Results:[0x40002e1320 0x40002e1380]}
+    file_test.go:56: Want result: &{Found:2 Valid:1 Results:[0x40002cd920 0x40002cd980]}
     file_test.go:57: Want error: <nil>
     context.go:17: Found DKIM-Signature header:  v=1; a=ed25519-sha256; c=relaxed/relaxed;
          d=football.example.com; i=@football.example.com;
@@ -1185,7 +1221,7 @@
     file_test.go:50: Loaded DNS results: map[string][]string{"test._domainkey.football.example.com":[]string{"   v=DKIM1; k=rsa;   p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDkHlOQoBTzWRiGs5V6NpP3idY6Wk08a5qhdR6wy5bdOKb2jLQiY/J16JYi0Qvx/byYzCNb3W91y3FutACDfzwQ/BC/e/8uBsCR+yz1Lxj+PL6lHvqMKrM3rG4hstT5QjvHO9PzoxZyVYLzBfO2EeC3Ip3G+2kryOTIKT+l/K4w3QIDAQAB"}}
     file_test.go:50: Loaded DNS errors: map[brisbane._domainkey.football.example.com:lookup : permanent error (for testing)]
     file_test.go:55: Message: "DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed;\r\n "
-    file_test.go:56: Want result: &{Found:2 Valid:1 Results:[0x40002e1980 0x40002e19e0]}
+    file_test.go:56: Want result: &{Found:2 Valid:1 Results:[0x4000336000 0x4000336060]}
     file_test.go:57: Want error: <nil>
     context.go:17: Found DKIM-Signature header:  v=1; a=ed25519-sha256; c=relaxed/relaxed;
          d=football.example.com; i=@football.example.com;
@@ -1219,7 +1255,7 @@
     file_test.go:50: Loaded DNS results: map[string][]string{"brisbane._domainkey.football.example.com":[]string{"   v=DKIM1; k=rsa;   p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDkHlOQoBTzWRiGs5V6NpP3idY6Wk08a5qhdR6wy5bdOKb2jLQiY/J16JYi0Qvx/byYzCNb3W91y3FutACDfzwQ/BC/e/8uBsCR+yz1Lxj+PL6lHvqMKrM3rG4hstT5QjvHO9PzoxZyVYLzBfO2EeC3Ip3G+2kryOTIKT+l/K4w3QIDAQAB", "   v=DKIM1; k=ed25519;   p=11qYAYKxCrfVS/7TyWQHOg7hcvPapiMlrwIaaPcHURo="}, "test._domainkey.football.example.com":[]string{"   v=DKIM1; k=rsa;   p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDkHlOQoBTzWRiGs5V6NpP3idY6Wk08a5qhdR6wy5bdOKb2jLQiY/J16JYi0Qvx/byYzCNb3W91y3FutACDfzwQ/BC/e/8uBsCR+yz1Lxj+PL6lHvqMKrM3rG4hstT5QjvHO9PzoxZyVYLzBfO2EeC3Ip3G+2kryOTIKT+l/K4w3QIDAQAB"}}
     file_test.go:50: Loaded DNS errors: map[]
     file_test.go:55: Message: "DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed;\r\n "
-    file_test.go:56: Want result: &{Found:2 Valid:2 Results:[0x40003360c0 0x4000336120]}
+    file_test.go:56: Want result: &{Found:2 Valid:2 Results:[0x40003366c0 0x4000336720]}
     file_test.go:57: Want error: <nil>
     context.go:17: Found DKIM-Signature header:  v=1; a=ed25519-sha256; c=relaxed/relaxed;
          d=football.example.com; i=@football.example.com;
@@ -1266,7 +1302,7 @@
     file_test.go:50: Loaded DNS results: map[string][]string{"brisbane._domainkey.football.example.com":[]string{"   v=DKIM1; k=ed25519;   p=11qYAYKxCrfVS/7TyWQHOg7hcvPapiMlrwIaaPcHURo="}, "selector._domainkey.example.com":[]string{"   v=DKIM1; k=ed25519; p=SvoPT692bVrQBT8UNxt6SF538O3snA4fE3/i/glCxwQ="}, "test._domainkey.football.example.com":[]string{"   v=DKIM1; k=rsa;   p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDkHlOQoBTzWRiGs5V6NpP3idY6Wk08a5qhdR6wy5bdOKb2jLQiY/J16JYi0Qvx/byYzCNb3W91y3FutACDfzwQ/BC/e/8uBsCR+yz1Lxj+PL6lHvqMKrM3rG4hstT5QjvHO9PzoxZyVYLzBfO2EeC3Ip3G+2kryOTIKT+l/K4w3QIDAQAB"}}
     file_test.go:50: Loaded DNS errors: map[]
     file_test.go:55: Message: "DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed;\r\n "
-    file_test.go:56: Want result: &{Found:3 Valid:3 Results:[0x4000336840 0x40003368a0 0x4000336900]}
+    file_test.go:56: Want result: &{Found:3 Valid:3 Results:[0x4000336e40 0x4000336ea0 0x4000336f00]}
     file_test.go:57: Want error: <nil>
     context.go:17: Found DKIM-Signature header:  v=1; a=ed25519-sha256; c=relaxed/relaxed;
             d=example.com; s=selector; t=1709341950;
@@ -1326,7 +1362,7 @@
     file_test.go:50: Loaded DNS results: map[string][]string{"brisbane._domainkey.football.example.com":[]string{"   v=DKIM1; k=ed25519;   p=11qYAYKxCrfVS/7TyWQHOg7hcvPapiMlrwIaaPcHURo="}, "selector._domainkey.example.com":[]string{"   v=DKIM1; k=ed25519; p=SvoPT692bVrQBT8UNxt6SF538O3snA4fE3/i/glCxwQ="}, "test._domainkey.football.example.com":[]string{"   v=DKIM1; k=rsa;   p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDkHlOQoBTzWRiGs5V6NpP3idY6Wk08a5qhdR6wy5bdOKb2jLQiY/J16JYi0Qvx/byYzCNb3W91y3FutACDfzwQ/BC/e/8uBsCR+yz1Lxj+PL6lHvqMKrM3rG4hstT5QjvHO9PzoxZyVYLzBfO2EeC3Ip3G+2kryOTIKT+l/K4w3QIDAQAB"}}
     file_test.go:50: Loaded DNS errors: map[]
     file_test.go:55: Message: "DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed;\r\n "
-    file_test.go:56: Want result: &{Found:3 Valid:3 Results:[0x40003370e0 0x4000337140 0x40003371a0]}
+    file_test.go:56: Want result: &{Found:3 Valid:3 Results:[0x40003376e0 0x4000337740 0x40003377a0]}
     file_test.go:57: Want error: <nil>
     context.go:17: Found DKIM-Signature header:  v=1; a=ed25519-sha256; c=relaxed/relaxed;
             d=example.com; s=selector; t=1709368031;
@@ -1386,7 +1422,7 @@
     file_test.go:50: Loaded DNS results: map[string][]string{"brisbane._domainkey.football.example.com":[]string{"   v=DKIM1; k=ed25519; t=s;   p=11qYAYKxCrfVS/7TyWQHOg7hcvPapiMlrwIaaPcHURo="}, "test._domainkey.football.example.com":[]string{"   v=DKIM1; k=rsa; t=s;   p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDkHlOQoBTzWRiGs5V6NpP3idY6Wk08a5qhdR6wy5bdOKb2jLQiY/J16JYi0Qvx/byYzCNb3W91y3FutACDfzwQ/BC/e/8uBsCR+yz1Lxj+PL6lHvqMKrM3rG4hstT5QjvHO9PzoxZyVYLzBfO2EeC3Ip3G+2kryOTIKT+l/K4w3QIDAQAB"}}
     file_test.go:50: Loaded DNS errors: map[]
     file_test.go:55: Message: "DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed;\r\n "
-    file_test.go:56: Want result: &{Found:2 Valid:2 Results:[0x40003379e0 0x4000337a40]}
+    file_test.go:56: Want result: &{Found:2 Valid:2 Results:[0x40003a4060 0x40003a40c0]}
     file_test.go:57: Want error: <nil>
     context.go:17: Found DKIM-Signature header:  v=1; a=ed25519-sha256; c=relaxed/relaxed;
          d=football.example.com; i=@football.example.com;
@@ -1432,7 +1468,7 @@
     file_test.go:50: Loaded DNS results: map[string][]string{"selector._domainkey.example.com":[]string{"   v=DKIM1; k=ed25519; t=s; p=SvoPT692bVrQBT8UNxt6SF538O3snA4fE3/i/glCxwQ="}}
     file_test.go:50: Loaded DNS errors: map[]
     file_test.go:55: Message: "DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed;\r\n "
-    file_test.go:56: Want result: &{Found:1 Valid:0 Results:[0x4000042780]}
+    file_test.go:56: Want result: &{Found:1 Valid:0 Results:[0x40003a4780]}
     file_test.go:57: Want error: <nil>
     context.go:17: Found DKIM-Signature header:  v=1; a=ed25519-sha256; c=relaxed/relaxed;
             d=example.com; s=selector; t=1709466347;
@@ -1453,14 +1489,14 @@
     context.go:17: Resulting hash: "kFTkVTyR9JWKX/Stl1+sUIuAgitRiOf7MwTBy5a2/ZA="
     context.go:17: PK [ed25519:4afa0f4faf766d5a]: Strict domain check failed: "example.com" != "sub.example.com" ("test@sub.example.com")
     context.go:17: Found 1 signatures, 0 valid
---- PASS: TestFromFiles (0.07s)
-    --- PASS: TestFromFiles/testdata/01-rfc8463 (0.00s)
-    --- PASS: TestFromFiles/testdata/02-too_many_headers (0.03s)
+--- PASS: TestFromFiles (0.03s)
+    --- PASS: TestFromFiles/testdata/01-rfc8463 (0.01s)
+    --- PASS: TestFromFiles/testdata/02-too_many_headers (0.01s)
     --- PASS: TestFromFiles/testdata/03-bad_message (0.00s)
     --- PASS: TestFromFiles/testdata/04-bad_dkim_signature_header (0.00s)
     --- PASS: TestFromFiles/testdata/05-dns_temp_error (0.00s)
     --- PASS: TestFromFiles/testdata/06-dns_perm_error (0.00s)
-    --- PASS: TestFromFiles/testdata/07-algo_mismatch (0.03s)
+    --- PASS: TestFromFiles/testdata/07-algo_mismatch (0.00s)
     --- PASS: TestFromFiles/testdata/08-our_signature (0.00s)
     --- PASS: TestFromFiles/testdata/09-limited_body (0.00s)
     --- PASS: TestFromFiles/testdata/10-strict_domain_check_pass (0.00s)
@@ -1488,18 +1524,18 @@
     context.go:17: Hashing header: "date:Fri, 11 Jul 2003 21:00:37 -0700 (PDT)\r\n"
     context.go:17: Hashing header: "to:Suzie Q <suzie@shopping.example.net>\r\n"
     context.go:17: Hashing header: "message-id:<20030712040037.46341.5F8J@football.example.com>\r\n"
-    context.go:17: Hashing header: "dkim-signature:v=1; a=rsa-sha256; c=relaxed/relaxed; d=example.com; s=test; t=1740978217; h=from:subject:date:to:message-id:from:subject:date:to:cc:message-id; bh=2jUSOH9NhtVGCQWNr9BrIAPreKQjO6Sn7XIkfJVOzv8=; b=;"
-    context.go:17: Resulting hash: "3GDBzsQgs33hc5GjfZw0//ufRFwdyu/LP9ja/GzBym8="
+    context.go:17: Hashing header: "dkim-signature:v=1; a=rsa-sha256; c=relaxed/relaxed; d=example.com; s=test; t=1775388550; h=from:subject:date:to:message-id:from:subject:date:to:cc:message-id; bh=2jUSOH9NhtVGCQWNr9BrIAPreKQjO6Sn7XIkfJVOzv8=; b=;"
+    context.go:17: Resulting hash: "2TCw9jk4DuR0eiX2lprJYFZZeBoQPmcdJrwCgMd7RsU="
     context.go:17: Found DKIM-Signature header:  v=1; a=rsa-sha256; c=relaxed/relaxed;
-        	d=example.com; s=test; t=1740978217;
+        	d=example.com; s=test; t=1775388550;
         	h=from:subject:date:to:message-id:from:subject:date:to:cc:message-id;
         	bh=2jUSOH9NhtVGCQWNr9BrIAPreKQjO6Sn7XIkfJVOzv8=;
-        	b=MWvHVtplNMenaJQua6Y00zVAcwgguTg4+Mj6T8gKMNnmZaKAPzhZgdo5rS/8XiulgwDX6b
-        	  uT3kods4zGuyrvUlnuFgQp7W67A91uP6drR01ha0ugiM9oWbr2a3lrT2PFkkln6OS3BNo6
-        	  UwzoHe4pAZqVhOV3lCK3V5MMSwJ7Sun9X6/wThqMLUe2XQQe3YxvutQFZAVmoua2Qq5wo0
-        	  LCqe6w1QZYdT+PaB02ba0do+5O0P+PcJpRJAsWi7b6HwMy9/A1RDmRG9MywtC/TLsVFXY0
-        	  33g5vrZSAeSaUGM+YCD6F/bxS51k6jZCyLAaojIOdowXZbIX6OMw1VtPIovtBA==;
-    context.go:17: TXT record for "test._domainkey.example.com": "v=DKIM1; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAprGpJEWiUOdgXLwMgEWXZYUX5oaEToLu3WJPz9KJ3PWd4xA/TZlQEP1l1AKS84GpqADd6JEmzcOUTAeBD22ZwEAN5KjmhS0dzBJdH8H2BPHEJHiyHZSuygZsqO0Bz3Kwh/Zee0vQrx+cRhCcWPh/1J0o+1NRowkzXIC8/MZDMLPiDDmeTi8Cr4zlo4mRKT7wLa3TAwx3tZIl1qjqb8KE5/5KJqjsTiPQNnLOb5LiI8QkkX4JASKGySjpqdCzJfLWjpbz482SYg5rTporUcOrV/NNfCMU/kU5vqSwx6FODjLQGwChsXPUVP2bz4nShgMDiOt6pot6oIeC5w1yg1vc+QIDAQAB"
+        	b=AxdjwoX5iK+NJlC0LNQD1Z4coWczu7VKPQ+1zF5UAZe8u+xYF5jwJ7UglbyDE5+gU4ONaA
+        	  95fb+bpPtT5b2Oh9Szn7zzH+0scVS8L9/BeEugaDC5h8yxxhCeH30mmOySin5OLRDyW2Ue
+        	  b+e8r2zmxpWeee/oiqTEHVyscCojB/jM1vr4t2IPTdKikZ6MuqTi7twv38OcNH/88GCGj+
+        	  qOKhwvs+OEkJLhIIPEQuhTPWCBjzWmTe/yaXlQ70VlQcRPyqT6hHGfToPrbEvNUsoSuvd0
+        	  sn+UeafSz9oMU8oIzSkQMKm7BsAe4fPY3y3RL3rd5cW3iROJAzCXLeJv3bBesQ==;
+    context.go:17: TXT record for "test._domainkey.example.com": "v=DKIM1; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2mO2XPvHxIKFFk3d0Kv7PJ9+3K22UQccCTUHCEkWhMho+HD/3irKAEvhaevIER7CdwjHTnIUdPKAEFwitaqW7ciq3it9nGzOUSLfwba0XalkNwqqBqZmeavpGn4/Ajj81s3amrHrFMlxamC9GYuthicoNdVlIpumqHu64zbEqbLr5CZTeqtUd3Nxwx6S0P/5VVGATqhJUj8U0332RFgNAeHxgWf1BO0WPHtzaIGTMxz2W+YnCDf6cA4avj035ol5xfkUQ1CT1ZvkriGTHGIty1JdGhX6fq3qSXEtE+AcWpUxgaPszJTFtZtjFS9h1/cwv2T7hkZoqNrJHMbdSvrNywIDAQAB"
     context.go:17: Parsed public key: [rsa:30820122300d0609]
     context.go:17: Body hash matches: "2jUSOH9NhtVGCQWNr9BrIAPreKQjO6Sn7XIkfJVOzv8="
     context.go:17: Hashing header: "from:Joe SixPack <joe@football.example.com>\r\n"
@@ -1507,11 +1543,11 @@
     context.go:17: Hashing header: "date:Fri, 11 Jul 2003 21:00:37 -0700 (PDT)\r\n"
     context.go:17: Hashing header: "to:Suzie Q <suzie@shopping.example.net>\r\n"
     context.go:17: Hashing header: "message-id:<20030712040037.46341.5F8J@football.example.com>\r\n"
-    context.go:17: Hashing header: "dkim-signature:v=1; a=rsa-sha256; c=relaxed/relaxed; d=example.com; s=test; t=1740978217; h=from:subject:date:to:message-id:from:subject:date:to:cc:message-id; bh=2jUSOH9NhtVGCQWNr9BrIAPreKQjO6Sn7XIkfJVOzv8=; b=;"
-    context.go:17: Resulting hash: "3GDBzsQgs33hc5GjfZw0//ufRFwdyu/LP9ja/GzBym8="
+    context.go:17: Hashing header: "dkim-signature:v=1; a=rsa-sha256; c=relaxed/relaxed; d=example.com; s=test; t=1775388550; h=from:subject:date:to:message-id:from:subject:date:to:cc:message-id; bh=2jUSOH9NhtVGCQWNr9BrIAPreKQjO6Sn7XIkfJVOzv8=; b=;"
+    context.go:17: Resulting hash: "2TCw9jk4DuR0eiX2lprJYFZZeBoQPmcdJrwCgMd7RsU="
     context.go:17: PK [rsa:30820122300d0609]: Verification succeeded
     context.go:17: Found 1 signatures, 1 valid
---- PASS: TestSignRSA (3.28s)
+--- PASS: TestSignRSA (0.61s)
 === RUN   TestSignEd25519
     context.go:17: Signing for example.com / test with ed25519-sha256
     context.go:17: Hashing header: "from:Joe SixPack <joe@football.example.com>\r\n"
@@ -1519,27 +1555,27 @@
     context.go:17: Hashing header: "date:Fri, 11 Jul 2003 21:00:37 -0700 (PDT)\r\n"
     context.go:17: Hashing header: "to:Suzie Q <suzie@shopping.example.net>\r\n"
     context.go:17: Hashing header: "message-id:<20030712040037.46341.5F8J@football.example.com>\r\n"
-    context.go:17: Hashing header: "dkim-signature:v=1; a=ed25519-sha256; c=relaxed/relaxed; d=example.com; s=test; t=1740978217; h=from:subject:date:to:message-id:from:subject:date:to:cc:message-id; bh=2jUSOH9NhtVGCQWNr9BrIAPreKQjO6Sn7XIkfJVOzv8=; b=;"
-    context.go:17: Resulting hash: "kQIZp/JbQROJa5ywfWE+vxamYWIeUS+gKZj50dcyW+A="
+    context.go:17: Hashing header: "dkim-signature:v=1; a=ed25519-sha256; c=relaxed/relaxed; d=example.com; s=test; t=1775388550; h=from:subject:date:to:message-id:from:subject:date:to:cc:message-id; bh=2jUSOH9NhtVGCQWNr9BrIAPreKQjO6Sn7XIkfJVOzv8=; b=;"
+    context.go:17: Resulting hash: "An9Efun8nXyavDdxcEIbjLa5FIcIkW+M2pe2N/dXg0Q="
     context.go:17: Found DKIM-Signature header:  v=1; a=ed25519-sha256; c=relaxed/relaxed;
-        	d=example.com; s=test; t=1740978217;
+        	d=example.com; s=test; t=1775388550;
         	h=from:subject:date:to:message-id:from:subject:date:to:cc:message-id;
         	bh=2jUSOH9NhtVGCQWNr9BrIAPreKQjO6Sn7XIkfJVOzv8=;
-        	b=v7W2z5ZAFFm8rvybZ7PQJOfir12Ps3PRBiKKtcTyGUylvai0h6lSha3WX8IDq+h/j4ULjq
-        	  7YJpD5wPoK+vXFBg==;
-    context.go:17: TXT record for "test._domainkey.example.com": "v=DKIM1; k=ed25519; p=blqIMuXE/+0eetQr8ptCdgFk2tZK1ZdsRNQzvrjuHxk="
-    context.go:17: Parsed public key: [ed25519:6e5a8832e5c4ffed]
+        	b=MxIq51N9OkORME+/ermsHMiHyp99aTTVJkUAOODqwSeE42ClP0lvazJIXl+x3InV0HNWe4
+        	  8BGnlo+ND2OzbhDA==;
+    context.go:17: TXT record for "test._domainkey.example.com": "v=DKIM1; k=ed25519; p=ZR/GbOldD7d1PHPr7/XUH0rzkn5GsfySV+e+lKDy9yQ="
+    context.go:17: Parsed public key: [ed25519:651fc66ce95d0fb7]
     context.go:17: Body hash matches: "2jUSOH9NhtVGCQWNr9BrIAPreKQjO6Sn7XIkfJVOzv8="
     context.go:17: Hashing header: "from:Joe SixPack <joe@football.example.com>\r\n"
     context.go:17: Hashing header: "subject:Is dinner ready?\r\n"
     context.go:17: Hashing header: "date:Fri, 11 Jul 2003 21:00:37 -0700 (PDT)\r\n"
     context.go:17: Hashing header: "to:Suzie Q <suzie@shopping.example.net>\r\n"
     context.go:17: Hashing header: "message-id:<20030712040037.46341.5F8J@football.example.com>\r\n"
-    context.go:17: Hashing header: "dkim-signature:v=1; a=ed25519-sha256; c=relaxed/relaxed; d=example.com; s=test; t=1740978217; h=from:subject:date:to:message-id:from:subject:date:to:cc:message-id; bh=2jUSOH9NhtVGCQWNr9BrIAPreKQjO6Sn7XIkfJVOzv8=; b=;"
-    context.go:17: Resulting hash: "kQIZp/JbQROJa5ywfWE+vxamYWIeUS+gKZj50dcyW+A="
-    context.go:17: PK [ed25519:6e5a8832e5c4ffed]: Verification succeeded
+    context.go:17: Hashing header: "dkim-signature:v=1; a=ed25519-sha256; c=relaxed/relaxed; d=example.com; s=test; t=1775388550; h=from:subject:date:to:message-id:from:subject:date:to:cc:message-id; bh=2jUSOH9NhtVGCQWNr9BrIAPreKQjO6Sn7XIkfJVOzv8=; b=;"
+    context.go:17: Resulting hash: "An9Efun8nXyavDdxcEIbjLa5FIcIkW+M2pe2N/dXg0Q="
+    context.go:17: PK [ed25519:651fc66ce95d0fb7]: Verification succeeded
     context.go:17: Found 1 signatures, 1 valid
---- PASS: TestSignEd25519 (0.02s)
+--- PASS: TestSignEd25519 (0.01s)
 === RUN   TestSignBadMessage
 --- PASS: TestSignBadMessage (0.00s)
 === RUN   TestSignBadAlgorithm
@@ -1736,9 +1772,9 @@
     --- PASS: FuzzParsePublicKey/seed#12 (0.00s)
     --- PASS: FuzzParsePublicKey/seed#13 (0.00s)
 PASS
-ok  	blitiri.com.ar/go/chasquid/internal/dkim	3.517s
+ok  	blitiri.com.ar/go/chasquid/internal/dkim	0.698s
 === RUN   TestBasic
-    testlib.go:32: test directory: "/tmp/testlib_1723835538"
+    testlib.go:32: test directory: "/tmp/testlib_2718485207"
 _ domaininfo.go:117  DomainInfo.Incoming d1: d1 incoming level raised: TLS_SECURE > PLAIN
 _ domaininfo.go:109  DomainInfo.Incoming d1: error: d1 incoming denied: TLS_INSECURE < TLS_SECURE
 _ domaininfo.go:153  DomainInfo.Outgoing d1: d1 outgoing level raised: TLS_SECURE > PLAIN
@@ -1747,14 +1783,14 @@
 _ domaininfo.go:182  DomainInfo.SetToPlain d1: set to plain
 --- PASS: TestBasic (0.00s)
 === RUN   TestNewDomain
-    testlib.go:32: test directory: "/tmp/testlib_3388366144"
+    testlib.go:32: test directory: "/tmp/testlib_2149443842"
 _ domaininfo.go:153  DomainInfo.Outgoing insecure: insecure outgoing level raised: TLS_INSECURE > PLAIN
 _ domaininfo.go:117  DomainInfo.Incoming insecure: insecure incoming level raised: TLS_INSECURE > PLAIN
 _ domaininfo.go:153  DomainInfo.Outgoing secure: secure outgoing level raised: TLS_SECURE > PLAIN
 _ domaininfo.go:117  DomainInfo.Incoming secure: secure incoming level raised: TLS_SECURE > PLAIN
 --- PASS: TestNewDomain (0.00s)
 === RUN   TestProgressions
-    testlib.go:32: test directory: "/tmp/testlib_950172594"
+    testlib.go:32: test directory: "/tmp/testlib_2744299973"
 _ domaininfo.go:117  DomainInfo.Incoming pisis: pisis incoming level raised: TLS_INSECURE > PLAIN
 _ domaininfo.go:153  DomainInfo.Outgoing pisis: pisis outgoing level raised: TLS_INSECURE > PLAIN
 _ domaininfo.go:117  DomainInfo.Incoming pisis: pisis incoming level raised: TLS_SECURE > TLS_INSECURE
@@ -1769,27 +1805,27 @@
 _ domaininfo.go:145  DomainInfo.Outgoing ssip: error: ssip outgoing denied: PLAIN < TLS_SECURE
 --- PASS: TestProgressions (0.00s)
 === RUN   TestErrors
-    testlib.go:32: test directory: "/tmp/testlib_208203662"
+    testlib.go:32: test directory: "/tmp/testlib_294796215"
 _ domaininfo.go:117  DomainInfo.Incoming d1: d1 incoming level raised: TLS_SECURE > PLAIN
 _ domaininfo.go:67   DomainInfo.Reload reload: error: id \"d1\": proto: syntax error (line 1:1): invalid field name: invalid-text-protobuf-contents
 _ domaininfo.go:67   DomainInfo.Reload reload: error: id \"d1\": proto: syntax error (line 1:1): invalid field name: invalid-text-protobuf-contents
 --- PASS: TestErrors (0.00s)
 === RUN   TestDirectoryErrors
-    testlib.go:32: test directory: "/tmp/testlib_1983272966"
-_ domaininfo.go:59   DomainInfo.Reload reload: error: open /tmp/testlib_1983272966/db: no such file or directory
-_ domaininfo.go:84   DomainInfo.write d1: error: open /tmp/testlib_1983272966/db/.s:d1913220943: no such file or directory
+    testlib.go:32: test directory: "/tmp/testlib_2230442110"
+_ domaininfo.go:59   DomainInfo.Reload reload: error: open /tmp/testlib_2230442110/db: no such file or directory
+_ domaininfo.go:84   DomainInfo.write d1: error: open /tmp/testlib_2230442110/db/.s:d1159431484: no such file or directory
 --- PASS: TestDirectoryErrors (0.00s)
 PASS
-ok  	blitiri.com.ar/go/chasquid/internal/domaininfo	0.085s
+ok  	blitiri.com.ar/go/chasquid/internal/domaininfo	0.031s
 === RUN   TestUsernameNotSafe
 --- PASS: TestUsernameNotSafe (0.00s)
 === RUN   TestAutodetect
-    testlib.go:32: test directory: "/tmp/testlib_672158816"
---- PASS: TestAutodetect (0.01s)
+    testlib.go:32: test directory: "/tmp/testlib_2715562492"
+--- PASS: TestAutodetect (0.00s)
 === RUN   TestReload
 --- PASS: TestReload (0.00s)
 PASS
-ok  	blitiri.com.ar/go/chasquid/internal/dovecot	0.080s
+ok  	blitiri.com.ar/go/chasquid/internal/dovecot	0.020s
 === RUN   TestSplit
 --- PASS: TestSplit (0.00s)
 === RUN   TestDomainIn
@@ -1797,13 +1833,13 @@
 === RUN   TestAddHeader
 --- PASS: TestAddHeader (0.00s)
 PASS
-ok  	blitiri.com.ar/go/chasquid/internal/envelope	0.072s
+ok  	blitiri.com.ar/go/chasquid/internal/envelope	0.007s
 === RUN   TestHandler
 --- PASS: TestHandler (0.00s)
 === RUN   TestMapLabelAccident
 --- PASS: TestMapLabelAccident (0.00s)
 PASS
-ok  	blitiri.com.ar/go/chasquid/internal/expvarom	0.096s
+ok  	blitiri.com.ar/go/chasquid/internal/expvarom	0.016s
 === RUN   TestNoNewline
 --- PASS: TestNoNewline (0.00s)
 === RUN   TestBasic
@@ -1828,21 +1864,21 @@
     haproxy_test.go:69: testing 18: PROXY TCP6 5::5 6::6 7777 8888
 --- PASS: TestBasic (0.00s)
 PASS
-ok  	blitiri.com.ar/go/chasquid/internal/haproxy	0.084s
+ok  	blitiri.com.ar/go/chasquid/internal/haproxy	0.011s
 === RUN   TestBadServer
-    asm_arm64.s:1223: FakeServer &{{0x4000206480}}: accepted 
-    asm_arm64.s:1223: FakeServer &{{0x4000206480}}: readRequest: "" "" / EOF
-    asm_arm64.s:1223: FakeServer &{{0x4000206480}}: writeMessage("xxx"): 0 write unix /tmp/rpc-test-283497285/rpc.sock->@: write: broken pipe
-    asm_arm64.s:1223: FakeServer &{{0x4000206480}}: closing
-    asm_arm64.s:1223: FakeServer &{{0x4000206600}}: accepted 
-    asm_arm64.s:1223: FakeServer &{{0x4000206600}}: readRequest: "Echo" "" / <nil>
-    asm_arm64.s:1223: FakeServer &{{0x4000206600}}: writeMessage("xxx"): 3 <nil>
-    asm_arm64.s:1223: FakeServer &{{0x4000206600}}: closing
---- PASS: TestBadServer (0.03s)
+    asm_arm64.s:1223: FakeServer &{{0x4000166e80}}: accepted 
+    asm_arm64.s:1223: FakeServer &{{0x4000166e80}}: readRequest: "" "" / EOF
+    asm_arm64.s:1223: FakeServer &{{0x4000166e80}}: writeMessage("xxx"): 0 write unix /tmp/rpc-test-4124196216/rpc.sock->@: write: broken pipe
+    asm_arm64.s:1223: FakeServer &{{0x4000166e80}}: closing
+    asm_arm64.s:1223: FakeServer &{{0x4000167000}}: accepted 
+    asm_arm64.s:1223: FakeServer &{{0x4000167000}}: readRequest: "Echo" "" / <nil>
+    asm_arm64.s:1223: FakeServer &{{0x4000167000}}: writeMessage("xxx"): 3 <nil>
+    asm_arm64.s:1223: FakeServer &{{0x4000167000}}: closing
+--- PASS: TestBadServer (0.01s)
 === RUN   TestBadSocket
 --- PASS: TestBadSocket (0.00s)
 === RUN   TestEndToEnd
-_ localrpc.go:63     LocalRPC.Server /tmp/rpc-test-1481329105/sock: Listening
+_ localrpc.go:63     LocalRPC.Server /tmp/rpc-test-416592885/sock: Listening
 === RUN   TestEndToEnd/Echo
 === RUN   TestEndToEnd/Echo#01
 === RUN   TestEndToEnd/Hola
@@ -1850,7 +1886,7 @@
 _ localrpc.go:139    LocalRPC.Handle @: error: -> 500 test error
 === RUN   TestEndToEnd/UnknownMethod
 _ localrpc.go:139    LocalRPC.Handle @: error: -> 500 unknown method
-_ localrpc.go:67     LocalRPC.Server /tmp/rpc-test-1481329105/sock: error: Accept error: accept unix /tmp/rpc-test-1481329105/sock: use of closed network connection
+_ localrpc.go:67     LocalRPC.Server /tmp/rpc-test-416592885/sock: error: Accept error: accept unix /tmp/rpc-test-416592885/sock: use of closed network connection
 --- PASS: TestEndToEnd (0.01s)
     --- PASS: TestEndToEnd/Echo (0.00s)
     --- PASS: TestEndToEnd/Echo#01 (0.00s)
@@ -1865,7 +1901,7 @@
 === RUN   TestShortReadRequest
 --- PASS: TestShortReadRequest (0.00s)
 PASS
-ok  	blitiri.com.ar/go/chasquid/internal/localrpc	0.109s
+ok  	blitiri.com.ar/go/chasquid/internal/localrpc	0.044s
 === RUN   TestLogger
 --- PASS: TestLogger (0.00s)
 === RUN   TestDefault
@@ -1873,7 +1909,7 @@
 === RUN   TestFailedLogger
 --- PASS: TestFailedLogger (0.00s)
 PASS
-ok  	blitiri.com.ar/go/chasquid/internal/maillog	0.108s
+ok  	blitiri.com.ar/go/chasquid/internal/maillog	0.014s
 === RUN   TestContext
 --- PASS: TestContext (0.00s)
 === RUN   TestHistogramBasic
@@ -1881,15 +1917,15 @@
 === RUN   TestHistogramEmpty
 --- PASS: TestHistogramEmpty (0.00s)
 === RUN   TestHTTP
---- PASS: TestHTTP (0.03s)
+--- PASS: TestHTTP (0.01s)
 === RUN   TestHTTPLong
---- PASS: TestHTTPLong (0.00s)
+--- PASS: TestHTTPLong (0.01s)
 === RUN   TestHTTPErrors
---- PASS: TestHTTPErrors (0.07s)
+--- PASS: TestHTTPErrors (0.02s)
 === RUN   TestHTTPUroboro
---- PASS: TestHTTPUroboro (0.03s)
+--- PASS: TestHTTPUroboro (0.01s)
 === RUN   TestHTTPDeep
---- PASS: TestHTTPDeep (0.03s)
+--- PASS: TestHTTPDeep (0.01s)
 === RUN   TestStripZeros
 --- PASS: TestStripZeros (0.00s)
 === RUN   TestRegisterHandler
@@ -1897,7 +1933,7 @@
 === RUN   TestBasic
 --- PASS: TestBasic (0.00s)
 === RUN   TestLong
---- PASS: TestLong (0.02s)
+--- PASS: TestLong (0.00s)
 === RUN   TestIsError
 --- PASS: TestIsError (0.00s)
 === RUN   TestFindViaRef
@@ -1909,7 +1945,7 @@
 === RUN   TestFindParent
 --- PASS: TestFindParent (0.00s)
 PASS
-ok  	blitiri.com.ar/go/chasquid/internal/nettrace	0.326s
+ok  	blitiri.com.ar/go/chasquid/internal/nettrace	0.069s
 === RUN   TestUser
 --- PASS: TestUser (0.00s)
 === RUN   TestDomain
@@ -1969,41 +2005,41 @@
     --- PASS: FuzzDomainToUnicode/d8637022b61fb5c4df4e153063564accd6331debaafdd594405c320a5e9f2e70 (0.00s)
     --- PASS: FuzzDomainToUnicode/dc0204d8e2ab058a763873d2a5fede806e95235771ecdd96b56c906886822c19 (0.00s)
 PASS
-ok  	blitiri.com.ar/go/chasquid/internal/normalize	0.064s
+ok  	blitiri.com.ar/go/chasquid/internal/normalize	0.010s
 === RUN   TestBin
-    testlib.go:32: test directory: "/tmp/testlib_2012001404"
+    testlib.go:32: test directory: "/tmp/testlib_3762785461"
 --- PASS: TestBin (0.00s)
 === RUN   TestText
-    testlib.go:32: test directory: "/tmp/testlib_2479216384"
+    testlib.go:32: test directory: "/tmp/testlib_1418711667"
 --- PASS: TestText (0.00s)
 === RUN   TestStore
-    testlib.go:32: test directory: "/tmp/testlib_1996374620"
+    testlib.go:32: test directory: "/tmp/testlib_236605376"
 --- PASS: TestStore (0.00s)
 === RUN   TestFileErrors
-    testlib.go:32: test directory: "/tmp/testlib_2375025879"
+    testlib.go:32: test directory: "/tmp/testlib_3537345663"
 --- PASS: TestFileErrors (0.00s)
 === RUN   TestMarshalErrors
-    testlib.go:32: test directory: "/tmp/testlib_2397060077"
+    testlib.go:32: test directory: "/tmp/testlib_783411292"
 --- PASS: TestMarshalErrors (0.00s)
 PASS
-ok  	blitiri.com.ar/go/chasquid/internal/protoio	0.072s
+ok  	blitiri.com.ar/go/chasquid/internal/protoio	0.016s
 ?   	blitiri.com.ar/go/chasquid/internal/protoio/testpb	[no test files]
 === RUN   TestDSN
     dsn_test.go:49: From: Mail Delivery System <postmaster-dsn@dsnDomain>
         To: <from@from.org>
         Subject: Mail delivery failed: returning message to sender
-        Message-ID: <chasquid-dsn-oBTY_piGhnM@dsnDomain>
-        Date: Mon, 03 Mar 2025 05:03:39 +0000
+        Message-ID: <chasquid-dsn-ge7FxnDlon8@dsnDomain>
+        Date: Sun, 05 Apr 2026 11:29:12 +0000
         In-Reply-To: <msgid-123@zaraza>
         References: <msgid-123@zaraza>
         X-Failed-Recipients: pepe@africa.org, ñaca@africa.org, 
         Auto-Submitted: auto-replied
         MIME-Version: 1.0
         Content-Type: multipart/report; report-type=delivery-status;
-            boundary="Yp7aoNlNT1U"
+            boundary="kSK5zUOadq4"
         
         
-        --Yp7aoNlNT1U
+        --kSK5zUOadq4
         Content-Type: text/plain; charset="utf-8"
         Content-Disposition: inline
         Content-Description: Notification
@@ -2028,7 +2064,7 @@
             oh! the humanity!
         
         
-        --Yp7aoNlNT1U
+        --kSK5zUOadq4
         Content-Type: message/global-delivery-status
         Content-Description: Delivery Report
         Content-Transfer-Encoding: 8bit
@@ -2059,7 +2095,7 @@
         
         
         
-        --Yp7aoNlNT1U
+        --kSK5zUOadq4
         Content-Type: message/rfc822
         Content-Description: Undelivered Message
         Content-Transfer-Encoding: 8bit
@@ -2069,76 +2105,84 @@
         Data ñaca.
         
         
-        --Yp7aoNlNT1U--
+        --kSK5zUOadq4--
         
 --- PASS: TestDSN (0.00s)
 === RUN   TestBasic
-    testlib.go:32: test directory: "/tmp/testlib_43784204"
-_ queue.go:308       Queue.SendLoop kjtyUe9HmRo: from from
-_ queue.go:367       Queue.SendLoop kjtyUe9HmRo: nodomain sent
-_ queue.go:367       Queue.SendLoop kjtyUe9HmRo: am@loco sent
-_ queue.go:367       Queue.SendLoop kjtyUe9HmRo: x@remote sent
-_ queue.go:342       Queue.SendLoop kjtyUe9HmRo: all done
---- PASS: TestBasic (0.00s)
+    testlib.go:32: test directory: "/tmp/testlib_1854714090"
+_ queue.go:308       Queue.SendLoop nh2m6AP2r8g: from from
+_ queue.go:367       Queue.SendLoop nh2m6AP2r8g: am@loco sent
+_ queue.go:367       Queue.SendLoop nh2m6AP2r8g: x@remote sent
+_ queue.go:367       Queue.SendLoop nh2m6AP2r8g: nodomain sent
+_ queue.go:342       Queue.SendLoop nh2m6AP2r8g: all done
+--- PASS: TestBasic (0.02s)
 === RUN   TestDSNOnTimeout
-    testlib.go:32: test directory: "/tmp/testlib_1635825722"
-_ queue.go:308       Queue.SendLoop QnHUlR60PR4: from from@loco
-_ queue.go:467       Queue.SendLoop QnHUlR60PR4: queued DSN: kcd_zk9Rl3Q
-_ queue.go:342       Queue.SendLoop QnHUlR60PR4: all done
-_ queue.go:308       Queue.SendLoop kcd_zk9Rl3Q: from <>
-_ queue.go:367       Queue.SendLoop kcd_zk9Rl3Q: from@loco sent
-_ queue.go:342       Queue.SendLoop kcd_zk9Rl3Q: all done
+    testlib.go:32: test directory: "/tmp/testlib_3848908369"
+_ queue.go:308       Queue.SendLoop kr_k4Wd3wF8: from from@loco
+_ queue.go:467       Queue.SendLoop kr_k4Wd3wF8: queued DSN: RHGdxk3N3CQ
+_ queue.go:342       Queue.SendLoop kr_k4Wd3wF8: all done
+_ queue.go:308       Queue.SendLoop RHGdxk3N3CQ: from <>
+_ queue.go:367       Queue.SendLoop RHGdxk3N3CQ: from@loco sent
 --- PASS: TestDSNOnTimeout (0.00s)
+_ queue.go:375       Queue.SendLoop RHGdxk3N3CQ: error: failed to write: rename /tmp/testlib_3848908369/.m:RHGdxk3N3CQ1294895805 /tmp/testlib_3848908369/m:RHGdxk3N3CQ: no such file or directory
 === RUN   TestAliases
-    testlib.go:32: test directory: "/tmp/testlib_3408530882"
-_ queue.go:308       Queue.SendLoop HErstjCjoFM: from from
-_ queue.go:367       Queue.SendLoop HErstjCjoFM: ata@hualpa sent
-_ queue.go:367       Queue.SendLoop HErstjCjoFM: pq@loco sent
-_ queue.go:367       Queue.SendLoop HErstjCjoFM: rs@loco sent
-_ queue.go:342       Queue.SendLoop HErstjCjoFM: all done
+_ queue.go:342       Queue.SendLoop RHGdxk3N3CQ: all done
+E queue.go:230       failed to remove queue file "/tmp/testlib_3848908369/m:RHGdxk3N3CQ": remove /tmp/testlib_3848908369/m:RHGdxk3N3CQ: no such file or directory
+    testlib.go:32: test directory: "/tmp/testlib_1529550097"
+_ queue.go:308       Queue.SendLoop HObzwOxprg8: from from
+_ queue.go:367       Queue.SendLoop HObzwOxprg8: ata@hualpa sent
+_ queue.go:375       Queue.SendLoop HObzwOxprg8: error: failed to write: rename /tmp/testlib_1529550097/.m:HObzwOxprg855828049 /tmp/testlib_1529550097/m:HObzwOxprg8: no such file or directory
 --- PASS: TestAliases (0.00s)
+_ queue.go:367       Queue.SendLoop HObzwOxprg8: pq@loco sent
 === RUN   TestFullQueue
-    testlib.go:32: test directory: "/tmp/testlib_1949311582"
+    testlib.go:32: test directory: "/tmp/testlib_2475488246"
+_ queue.go:375       Queue.SendLoop HObzwOxprg8: error: failed to write: open /tmp/testlib_1529550097/.m:HObzwOxprg83263483160: no such file or directory
+_ queue.go:367       Queue.SendLoop HObzwOxprg8: rs@loco sent
+_ queue.go:375       Queue.SendLoop HObzwOxprg8: error: failed to write: open /tmp/testlib_1529550097/.m:HObzwOxprg82583167036: no such file or directory
+_ queue.go:342       Queue.SendLoop HObzwOxprg8: all done
+E queue.go:230       failed to remove queue file "/tmp/testlib_1529550097/m:HObzwOxprg8": remove /tmp/testlib_1529550097/m:HObzwOxprg8: no such file or directory
 _ queue.go:164       Queue.Put from: error: queue full
 --- PASS: TestFullQueue (0.00s)
+_ queue.go:308       Queue.SendLoop TNT9kFmOgmw: from from
+_ queue.go:367       Queue.SendLoop TNT9kFmOgmw: to sent
 === RUN   TestPipes
-    testlib.go:32: test directory: "/tmp/testlib_1829059940"
-_ queue.go:308       Queue.SendLoop tdI7PZkmFG4: from from
-_ queue.go:367       Queue.SendLoop tdI7PZkmFG4: to sent
-_ queue.go:375       Queue.SendLoop tdI7PZkmFG4: error: failed to write: open /tmp/testlib_1949311582/.m:tdI7PZkmFG42861909653: no such file or directory
-_ queue.go:342       Queue.SendLoop tdI7PZkmFG4: all done
-E queue.go:230       failed to remove queue file "/tmp/testlib_1949311582/m:tdI7PZkmFG4": remove /tmp/testlib_1949311582/m:tdI7PZkmFG4: no such file or directory
---- PASS: TestPipes (0.04s)
+    testlib.go:32: test directory: "/tmp/testlib_1687978486"
+_ queue.go:375       Queue.SendLoop TNT9kFmOgmw: error: failed to write: open /tmp/testlib_2475488246/.m:TNT9kFmOgmw372080792: no such file or directory
+_ queue.go:342       Queue.SendLoop TNT9kFmOgmw: all done
+E queue.go:230       failed to remove queue file "/tmp/testlib_2475488246/m:TNT9kFmOgmw": remove /tmp/testlib_2475488246/m:TNT9kFmOgmw: no such file or directory
+--- PASS: TestPipes (0.00s)
 === RUN   TestBadPath
 --- PASS: TestBadPath (0.00s)
 === RUN   TestNextDelay
 --- PASS: TestNextDelay (0.00s)
 === RUN   TestSerialization
-    testlib.go:32: test directory: "/tmp/testlib_1455281069"
-_ queue.go:308       Queue.SendLoop 2CgD5VNLJBk: from from@loco
-_ queue.go:367       Queue.SendLoop 2CgD5VNLJBk: to@to sent
-_ queue.go:342       Queue.SendLoop 2CgD5VNLJBk: all done
+    testlib.go:32: test directory: "/tmp/testlib_2363119620"
+_ queue.go:308       Queue.SendLoop L41r-n78__E: from from@loco
+_ queue.go:367       Queue.SendLoop L41r-n78__E: to@to sent
 --- PASS: TestSerialization (0.00s)
+_ queue.go:375       Queue.SendLoop L41r-n78__E: error: failed to write: rename /tmp/testlib_2363119620/.m:L41r-n78__E2061834255 /tmp/testlib_2363119620/m:L41r-n78__E: no such file or directory
 PASS
-ok  	blitiri.com.ar/go/chasquid/internal/queue	0.179s
+_ queue.go:342       Queue.SendLoop L41r-n78__E: all done
+E queue.go:230       failed to remove queue file "/tmp/testlib_2363119620/m:L41r-n78__E": remove /tmp/testlib_2363119620/m:L41r-n78__E: no such file or directory
+ok  	blitiri.com.ar/go/chasquid/internal/queue	0.053s
 === RUN   TestWriteFile
-    testlib.go:32: test directory: "/tmp/testlib_962504631"
+    testlib.go:32: test directory: "/tmp/testlib_1187962868"
 --- PASS: TestWriteFile (0.00s)
 === RUN   TestWriteFileWithOp
-    testlib.go:32: test directory: "/tmp/testlib_267591798"
+    testlib.go:32: test directory: "/tmp/testlib_1154988021"
 --- PASS: TestWriteFileWithOp (0.00s)
 === RUN   TestWriteFileWithFailingOp
-    testlib.go:32: test directory: "/tmp/testlib_1535889651"
+    testlib.go:32: test directory: "/tmp/testlib_2391371469"
 --- PASS: TestWriteFileWithFailingOp (0.00s)
 === RUN   TestErrors
-    testlib.go:32: test directory: "/tmp/testlib_301089845"
+    testlib.go:32: test directory: "/tmp/testlib_4179540891"
 --- PASS: TestErrors (0.00s)
 PASS
-ok  	blitiri.com.ar/go/chasquid/internal/safeio	0.048s
+ok  	blitiri.com.ar/go/chasquid/internal/safeio	0.016s
 === RUN   TestString
 --- PASS: TestString (0.00s)
 PASS
-ok  	blitiri.com.ar/go/chasquid/internal/set	0.048s
+ok  	blitiri.com.ar/go/chasquid/internal/set	0.007s
 === RUN   TestIsPermanent
 --- PASS: TestIsPermanent (0.00s)
 === RUN   TestIsASCII
@@ -2152,16 +2196,17 @@
 === RUN   TestFallbackToIDNA
 --- PASS: TestFallbackToIDNA (0.00s)
 === RUN   TestLineTooLong
---- PASS: TestLineTooLong (0.17s)
+--- PASS: TestLineTooLong (0.02s)
 PASS
-ok  	blitiri.com.ar/go/chasquid/internal/smtp	0.225s
-_ server.go:300      Server listening on 127.0.0.1:34005 (SMTP)
-2025-03-03 05:03:44.467627 daemon listening on 127.0.0.1:34005
-_ server.go:300      Server listening on 127.0.0.1:38081 (submission)
-2025-03-03 05:03:44.467709 daemon listening on 127.0.0.1:38081
-_ server.go:300      Server listening on 127.0.0.1:37615 (submission+TLS)
-2025-03-03 05:03:44.467728 daemon listening on 127.0.0.1:37615
+ok  	blitiri.com.ar/go/chasquid/internal/smtp	0.033s
+_ server.go:300      Server listening on 127.0.0.1:36035 (SMTP)
+2026-04-05 11:29:13.114564 daemon listening on 127.0.0.1:36035
+_ server.go:300      Server listening on 127.0.0.1:35415 (submission)
+2026-04-05 11:29:13.114715 daemon listening on 127.0.0.1:35415
+_ server.go:300      Server listening on 127.0.0.1:46481 (submission+TLS)
+2026-04-05 11:29:13.114767 daemon listening on 127.0.0.1:46481
 === RUN   TestSecLevel
+_ conn.go:209        SMTP.Conn 127.0.0.1:49136: error: error completing TLS handshake: EOF
 _ domaininfo.go:117  DomainInfo.Incoming slc: slc incoming level raised: TLS_CLIENT > PLAIN
 _ domaininfo.go:109  DomainInfo.Incoming slc: error: slc incoming denied: PLAIN < TLS_CLIENT
 _ conn.go:559        testconn testconn: error: security level check for slc failed (PLAIN)
@@ -2177,181 +2222,180 @@
 === RUN   TestReadUntilDotReadError
 --- PASS: TestReadUntilDotReadError (0.00s)
 === RUN   TestSimple
-_ conn.go:209        SMTP.Conn 127.0.0.1:37498: error: error completing TLS handshake: EOF
-_ conn.go:722        SMTP.Conn 127.0.0.1:50022: Queued from from@from to [to@localhost] - qlAIsXVta3E
-2025-03-03 05:03:44.573150 qlAIsXVta3E from=from@from queued ip=127.0.0.1:50022 to=[to@localhost]
-_ queue.go:308       Queue.SendLoop qlAIsXVta3E: from from@from
-_ queue.go:367       Queue.SendLoop qlAIsXVta3E: testuser@localhost sent
-2025-03-03 05:03:44.573341 qlAIsXVta3E from=from@from to=testuser@localhost sent
-_ queue.go:342       Queue.SendLoop qlAIsXVta3E: all done
-2025-03-03 05:03:44.573437 qlAIsXVta3E from=from@from all done
+_ conn.go:722        SMTP.Conn 127.0.0.1:36348: Queued from from@from to [to@localhost] - YTEE6tyav6I
+2026-04-05 11:29:13.219291 YTEE6tyav6I from=from@from queued ip=127.0.0.1:36348 to=[to@localhost]
+_ queue.go:308       Queue.SendLoop YTEE6tyav6I: from from@from
+_ queue.go:367       Queue.SendLoop YTEE6tyav6I: testuser@localhost sent
+2026-04-05 11:29:13.219631 YTEE6tyav6I from=from@from to=testuser@localhost sent
 --- PASS: TestSimple (0.00s)
 === RUN   TestSimpleTLS
-_ conn.go:722        SMTP.Conn 127.0.0.1:50032: Queued from from@from to [to@localhost] - 7wdX6OvBKIs
-2025-03-03 05:03:44.580278 7wdX6OvBKIs from=from@from queued ip=127.0.0.1:50032 to=[to@localhost]
-_ queue.go:308       Queue.SendLoop 7wdX6OvBKIs: from from@from
-_ queue.go:367       Queue.SendLoop 7wdX6OvBKIs: testuser@localhost sent
-2025-03-03 05:03:44.580359 7wdX6OvBKIs from=from@from to=testuser@localhost sent
-_ queue.go:342       Queue.SendLoop 7wdX6OvBKIs: all done
-2025-03-03 05:03:44.580461 7wdX6OvBKIs from=from@from all done
+_ queue.go:342       Queue.SendLoop YTEE6tyav6I: all done
+2026-04-05 11:29:13.220019 YTEE6tyav6I from=from@from all done
+_ conn.go:722        SMTP.Conn 127.0.0.1:36350: Queued from from@from to [to@localhost] - KnUzOtkbbu4
+2026-04-05 11:29:13.226181 KnUzOtkbbu4 from=from@from queued ip=127.0.0.1:36350 to=[to@localhost]
+_ queue.go:308       Queue.SendLoop KnUzOtkbbu4: from from@from
+_ queue.go:367       Queue.SendLoop KnUzOtkbbu4: testuser@localhost sent
+2026-04-05 11:29:13.226373 KnUzOtkbbu4 from=from@from to=testuser@localhost sent
 --- PASS: TestSimpleTLS (0.01s)
+_ queue.go:342       Queue.SendLoop KnUzOtkbbu4: all done
+2026-04-05 11:29:13.226617 KnUzOtkbbu4 from=from@from all done
 === RUN   TestManyEmails
-_ conn.go:722        SMTP.Conn 127.0.0.1:50046: Queued from from@from to [to@localhost] - z6aaJdq6SDE
-2025-03-03 05:03:44.600171 z6aaJdq6SDE from=from@from queued ip=127.0.0.1:50046 to=[to@localhost]
-_ queue.go:308       Queue.SendLoop z6aaJdq6SDE: from from@from
-_ queue.go:367       Queue.SendLoop z6aaJdq6SDE: testuser@localhost sent
-2025-03-03 05:03:44.600243 z6aaJdq6SDE from=from@from to=testuser@localhost sent
-_ queue.go:342       Queue.SendLoop z6aaJdq6SDE: all done
-2025-03-03 05:03:44.600336 z6aaJdq6SDE from=from@from all done
-_ conn.go:722        SMTP.Conn 127.0.0.1:50046: Queued from from@from to [to@localhost] - cEwaOuPWxhg
-2025-03-03 05:03:44.600634 cEwaOuPWxhg from=from@from queued ip=127.0.0.1:50046 to=[to@localhost]
-_ queue.go:308       Queue.SendLoop cEwaOuPWxhg: from from@from
-_ queue.go:367       Queue.SendLoop cEwaOuPWxhg: testuser@localhost sent
-2025-03-03 05:03:44.600685 cEwaOuPWxhg from=from@from to=testuser@localhost sent
-_ queue.go:342       Queue.SendLoop cEwaOuPWxhg: all done
-2025-03-03 05:03:44.600754 cEwaOuPWxhg from=from@from all done
-_ conn.go:722        SMTP.Conn 127.0.0.1:50046: Queued from from@from to [to@localhost] - cvsEdTaNkKs
-2025-03-03 05:03:44.601004 cvsEdTaNkKs from=from@from queued ip=127.0.0.1:50046 to=[to@localhost]
-_ queue.go:308       Queue.SendLoop cvsEdTaNkKs: from from@from
-_ queue.go:367       Queue.SendLoop cvsEdTaNkKs: testuser@localhost sent
-2025-03-03 05:03:44.601058 cvsEdTaNkKs from=from@from to=testuser@localhost sent
-_ queue.go:342       Queue.SendLoop cvsEdTaNkKs: all done
-2025-03-03 05:03:44.601123 cvsEdTaNkKs from=from@from all done
---- PASS: TestManyEmails (0.02s)
+_ conn.go:722        SMTP.Conn 127.0.0.1:36356: Queued from from@from to [to@localhost] - eo6rVS04DWA
+2026-04-05 11:29:13.232590 eo6rVS04DWA from=from@from queued ip=127.0.0.1:36356 to=[to@localhost]
+_ queue.go:308       Queue.SendLoop eo6rVS04DWA: from from@from
+_ queue.go:367       Queue.SendLoop eo6rVS04DWA: testuser@localhost sent
+2026-04-05 11:29:13.232774 eo6rVS04DWA from=from@from to=testuser@localhost sent
+_ queue.go:342       Queue.SendLoop eo6rVS04DWA: all done
+2026-04-05 11:29:13.233019 eo6rVS04DWA from=from@from all done
+_ conn.go:722        SMTP.Conn 127.0.0.1:36356: Queued from from@from to [to@localhost] - livsXRTSKW0
+2026-04-05 11:29:13.233681 livsXRTSKW0 from=from@from queued ip=127.0.0.1:36356 to=[to@localhost]
+_ queue.go:308       Queue.SendLoop livsXRTSKW0: from from@from
+_ queue.go:367       Queue.SendLoop livsXRTSKW0: testuser@localhost sent
+2026-04-05 11:29:13.233838 livsXRTSKW0 from=from@from to=testuser@localhost sent
+_ queue.go:342       Queue.SendLoop livsXRTSKW0: all done
+2026-04-05 11:29:13.234035 livsXRTSKW0 from=from@from all done
+_ conn.go:722        SMTP.Conn 127.0.0.1:36356: Queued from from@from to [to@localhost] - hM85emqUYZo
+2026-04-05 11:29:13.234672 hM85emqUYZo from=from@from queued ip=127.0.0.1:36356 to=[to@localhost]
+_ queue.go:308       Queue.SendLoop hM85emqUYZo: from from@from
+_ queue.go:367       Queue.SendLoop hM85emqUYZo: testuser@localhost sent
+2026-04-05 11:29:13.234851 hM85emqUYZo from=from@from to=testuser@localhost sent
+--- PASS: TestManyEmails (0.01s)
 === RUN   TestAuth
-2025-03-03 05:03:44.840534 127.0.0.1:35918 auth succeeded for testuser@localhost
-_ conn.go:722        SMTP.Conn 127.0.0.1:35918: Queued from testuser@localhost to [to@localhost] - iFLYm4Tittk
-2025-03-03 05:03:44.842376 iFLYm4Tittk from=testuser@localhost queued ip=127.0.0.1:35918 to=[to@localhost]
-_ queue.go:308       Queue.SendLoop iFLYm4Tittk: from testuser@localhost
-_ queue.go:367       Queue.SendLoop iFLYm4Tittk: testuser@localhost sent
-2025-03-03 05:03:44.842483 iFLYm4Tittk from=testuser@localhost to=testuser@localhost sent
-_ queue.go:342       Queue.SendLoop iFLYm4Tittk: all done
-2025-03-03 05:03:44.842572 iFLYm4Tittk from=testuser@localhost all done
---- PASS: TestAuth (0.24s)
+_ queue.go:342       Queue.SendLoop hM85emqUYZo: all done
+2026-04-05 11:29:13.235084 hM85emqUYZo from=from@from all done
+2026-04-05 11:29:13.344693 127.0.0.1:59794 auth succeeded for testuser@localhost
+_ conn.go:722        SMTP.Conn 127.0.0.1:59794: Queued from testuser@localhost to [to@localhost] - LmtBY4bn_YM
+2026-04-05 11:29:13.345745 LmtBY4bn_YM from=testuser@localhost queued ip=127.0.0.1:59794 to=[to@localhost]
+_ queue.go:308       Queue.SendLoop LmtBY4bn_YM: from testuser@localhost
+_ queue.go:367       Queue.SendLoop LmtBY4bn_YM: testuser@localhost sent
+2026-04-05 11:29:13.345861 LmtBY4bn_YM from=testuser@localhost to=testuser@localhost sent
+--- PASS: TestAuth (0.11s)
+_ queue.go:342       Queue.SendLoop LmtBY4bn_YM: all done
+2026-04-05 11:29:13.346033 LmtBY4bn_YM from=testuser@localhost all done
 === RUN   TestSubmissionWithoutAuth
-_ conn.go:318        SMTP.Conn 127.0.0.1:35920: error: MAIL failed: 550  5.7.9 Mail to submission port must be authenticated
---- PASS: TestSubmissionWithoutAuth (0.00s)
+_ conn.go:318        SMTP.Conn 127.0.0.1:59810: error: MAIL failed: 550  5.7.9 Mail to submission port must be authenticated
+--- PASS: TestSubmissionWithoutAuth (0.01s)
 === RUN   TestAuthOnTLS
-2025-03-03 05:03:45.111455 127.0.0.1:37510 auth succeeded for testuser@localhost
-_ conn.go:722        SMTP.Conn 127.0.0.1:37510: Queued from testuser@localhost to [to@localhost] - hvokU1ii2t4
-2025-03-03 05:03:45.112082 hvokU1ii2t4 from=testuser@localhost queued ip=127.0.0.1:37510 to=[to@localhost]
-_ queue.go:308       Queue.SendLoop hvokU1ii2t4: from testuser@localhost
-_ queue.go:367       Queue.SendLoop hvokU1ii2t4: testuser@localhost sent
-2025-03-03 05:03:45.112159 hvokU1ii2t4 from=testuser@localhost to=testuser@localhost sent
-_ queue.go:342       Queue.SendLoop hvokU1ii2t4: all done
-2025-03-03 05:03:45.112256 hvokU1ii2t4 from=testuser@localhost all done
---- PASS: TestAuthOnTLS (0.27s)
+2026-04-05 11:29:13.457581 127.0.0.1:49144 auth succeeded for testuser@localhost
+_ conn.go:722        SMTP.Conn 127.0.0.1:49144: Queued from testuser@localhost to [to@localhost] - wxyOxEiBMo4
+2026-04-05 11:29:13.458512 wxyOxEiBMo4 from=testuser@localhost queued ip=127.0.0.1:49144 to=[to@localhost]
+_ queue.go:308       Queue.SendLoop wxyOxEiBMo4: from testuser@localhost
+_ queue.go:367       Queue.SendLoop wxyOxEiBMo4: testuser@localhost sent
+2026-04-05 11:29:13.458730 wxyOxEiBMo4 from=testuser@localhost to=testuser@localhost sent
+--- PASS: TestAuthOnTLS (0.11s)
+_ queue.go:342       Queue.SendLoop wxyOxEiBMo4: all done
+2026-04-05 11:29:13.458992 wxyOxEiBMo4 from=testuser@localhost all done
 === RUN   TestAuthOnSMTP
-2025-03-03 05:03:45.368567 127.0.0.1:50056 auth succeeded for testuser@localhost
-_ conn.go:722        SMTP.Conn 127.0.0.1:50056: Queued from testuser@localhost to [to@localhost] - Zz44YGINqyY
-2025-03-03 05:03:45.369218 Zz44YGINqyY from=testuser@localhost queued ip=127.0.0.1:50056 to=[to@localhost]
-_ queue.go:308       Queue.SendLoop Zz44YGINqyY: from testuser@localhost
-_ queue.go:367       Queue.SendLoop Zz44YGINqyY: testuser@localhost sent
-2025-03-03 05:03:45.369298 Zz44YGINqyY from=testuser@localhost to=testuser@localhost sent
-_ queue.go:342       Queue.SendLoop Zz44YGINqyY: all done
-2025-03-03 05:03:45.369404 Zz44YGINqyY from=testuser@localhost all done
---- PASS: TestAuthOnSMTP (0.26s)
+2026-04-05 11:29:13.566622 127.0.0.1:36358 auth succeeded for testuser@localhost
+_ conn.go:722        SMTP.Conn 127.0.0.1:36358: Queued from testuser@localhost to [to@localhost] - t5C2T5BK-ZM
+2026-04-05 11:29:13.567654 t5C2T5BK-ZM from=testuser@localhost queued ip=127.0.0.1:36358 to=[to@localhost]
+_ queue.go:308       Queue.SendLoop t5C2T5BK-ZM: from testuser@localhost
+_ queue.go:367       Queue.SendLoop t5C2T5BK-ZM: testuser@localhost sent
+2026-04-05 11:29:13.567849 t5C2T5BK-ZM from=testuser@localhost to=testuser@localhost sent
+--- PASS: TestAuthOnSMTP (0.11s)
 === RUN   TestBrokenAuth
-_ conn.go:1193       SMTP.Conn 127.0.0.1:35932: error: error authenticating \"user\"@\"broken\": failed to auth
-2025-03-03 05:03:45.485954 127.0.0.1:35932 auth failed for user@broken
-_ conn.go:318        SMTP.Conn 127.0.0.1:35932: error: AUTH failed: 454  4.7.0 Temporary authentication failure
-_ conn.go:318        SMTP.Conn 127.0.0.1:35932: error: unknown<\"*\"> failed: 500  5.5.1 Unknown command
---- PASS: TestBrokenAuth (0.12s)
+_ queue.go:342       Queue.SendLoop t5C2T5BK-ZM: all done
+2026-04-05 11:29:13.568128 t5C2T5BK-ZM from=testuser@localhost all done
+_ conn.go:1193       SMTP.Conn 127.0.0.1:59822: error: error authenticating \"user\"@\"broken\": failed to auth
+2026-04-05 11:29:13.680560 127.0.0.1:59822 auth failed for user@broken
+_ conn.go:318        SMTP.Conn 127.0.0.1:59822: error: AUTH failed: 454  4.7.0 Temporary authentication failure
+_ conn.go:318        SMTP.Conn 127.0.0.1:59822: error: unknown<\"*\"> failed: 500  5.5.1 Unknown command
+--- PASS: TestBrokenAuth (0.11s)
 === RUN   TestWrongMailParsing
-_ conn.go:318        SMTP.Conn 127.0.0.1:50060: error: MAIL failed: 501  5.1.7 Sender address malformed
-_ conn.go:318        SMTP.Conn 127.0.0.1:50060: error: RCPT failed: 501  5.1.3 Malformed destination address
-_ conn.go:318        SMTP.Conn 127.0.0.1:50060: error: RCPT failed: 501  5.1.3 Malformed destination address
-_ conn.go:325        SMTP.Conn 127.0.0.1:50060: error: too many errors, breaking connection
-_ conn.go:318        SMTP.Conn 127.0.0.1:50072: error: MAIL failed: 501  5.1.7 Sender address malformed
-_ conn.go:318        SMTP.Conn 127.0.0.1:50072: error: RCPT failed: 501  5.1.3 Malformed destination address
-_ conn.go:318        SMTP.Conn 127.0.0.1:50072: error: RCPT failed: 501  5.1.3 Malformed destination address
-_ conn.go:325        SMTP.Conn 127.0.0.1:50072: error: too many errors, breaking connection
-_ conn.go:318        SMTP.Conn 127.0.0.1:50082: error: MAIL failed: 501  5.1.7 Sender address malformed
-_ conn.go:318        SMTP.Conn 127.0.0.1:50082: error: RCPT failed: 501  5.1.3 Malformed destination address
-_ conn.go:318        SMTP.Conn 127.0.0.1:50082: error: RCPT failed: 501  5.1.3 Malformed destination address
-_ conn.go:325        SMTP.Conn 127.0.0.1:50082: error: too many errors, breaking connection
-_ conn.go:318        SMTP.Conn 127.0.0.1:50096: error: MAIL failed: 501  5.1.7 Sender address malformed
-_ conn.go:318        SMTP.Conn 127.0.0.1:50096: error: RCPT failed: 501  5.1.3 Malformed destination address
-_ conn.go:318        SMTP.Conn 127.0.0.1:50096: error: RCPT failed: 501  5.1.3 Malformed destination address
-_ conn.go:325        SMTP.Conn 127.0.0.1:50096: error: too many errors, breaking connection
-_ conn.go:318        SMTP.Conn 127.0.0.1:50112: error: MAIL failed: 501  5.1.7 Sender address malformed
-_ conn.go:318        SMTP.Conn 127.0.0.1:50112: error: RCPT failed: 501  5.1.3 Malformed destination address
-_ conn.go:318        SMTP.Conn 127.0.0.1:50112: error: RCPT failed: 501  5.1.3 Malformed destination address
-_ conn.go:325        SMTP.Conn 127.0.0.1:50112: error: too many errors, breaking connection
-_ conn.go:318        SMTP.Conn 127.0.0.1:50116: error: MAIL failed: 501  5.1.7 Sender address malformed
-_ conn.go:318        SMTP.Conn 127.0.0.1:50116: error: RCPT failed: 501  5.1.3 Malformed destination address
-_ conn.go:318        SMTP.Conn 127.0.0.1:50116: error: RCPT failed: 501  5.1.3 Malformed destination address
-_ conn.go:325        SMTP.Conn 127.0.0.1:50116: error: too many errors, breaking connection
---- PASS: TestWrongMailParsing (0.00s)
+_ conn.go:318        SMTP.Conn 127.0.0.1:36362: error: MAIL failed: 501  5.1.7 Sender address malformed
+_ conn.go:318        SMTP.Conn 127.0.0.1:36362: error: RCPT failed: 501  5.1.3 Malformed destination address
+_ conn.go:318        SMTP.Conn 127.0.0.1:36362: error: RCPT failed: 501  5.1.3 Malformed destination address
+_ conn.go:325        SMTP.Conn 127.0.0.1:36362: error: too many errors, breaking connection
+_ conn.go:318        SMTP.Conn 127.0.0.1:36370: error: MAIL failed: 501  5.1.7 Sender address malformed
+_ conn.go:318        SMTP.Conn 127.0.0.1:36370: error: RCPT failed: 501  5.1.3 Malformed destination address
+_ conn.go:318        SMTP.Conn 127.0.0.1:36370: error: RCPT failed: 501  5.1.3 Malformed destination address
+_ conn.go:325        SMTP.Conn 127.0.0.1:36370: error: too many errors, breaking connection
+_ conn.go:318        SMTP.Conn 127.0.0.1:36376: error: MAIL failed: 501  5.1.7 Sender address malformed
+_ conn.go:318        SMTP.Conn 127.0.0.1:36376: error: RCPT failed: 501  5.1.3 Malformed destination address
+_ conn.go:318        SMTP.Conn 127.0.0.1:36376: error: RCPT failed: 501  5.1.3 Malformed destination address
+_ conn.go:325        SMTP.Conn 127.0.0.1:36376: error: too many errors, breaking connection
+_ conn.go:318        SMTP.Conn 127.0.0.1:36390: error: MAIL failed: 501  5.1.7 Sender address malformed
+_ conn.go:318        SMTP.Conn 127.0.0.1:36390: error: RCPT failed: 501  5.1.3 Malformed destination address
+_ conn.go:318        SMTP.Conn 127.0.0.1:36390: error: RCPT failed: 501  5.1.3 Malformed destination address
+_ conn.go:325        SMTP.Conn 127.0.0.1:36390: error: too many errors, breaking connection
+_ conn.go:318        SMTP.Conn 127.0.0.1:36394: error: MAIL failed: 501  5.1.7 Sender address malformed
+_ conn.go:318        SMTP.Conn 127.0.0.1:36394: error: RCPT failed: 501  5.1.3 Malformed destination address
+_ conn.go:318        SMTP.Conn 127.0.0.1:36394: error: RCPT failed: 501  5.1.3 Malformed destination address
+_ conn.go:325        SMTP.Conn 127.0.0.1:36394: error: too many errors, breaking connection
+_ conn.go:318        SMTP.Conn 127.0.0.1:36400: error: MAIL failed: 501  5.1.7 Sender address malformed
+_ conn.go:318        SMTP.Conn 127.0.0.1:36400: error: RCPT failed: 501  5.1.3 Malformed destination address
+_ conn.go:318        SMTP.Conn 127.0.0.1:36400: error: RCPT failed: 501  5.1.3 Malformed destination address
+_ conn.go:325        SMTP.Conn 127.0.0.1:36400: error: too many errors, breaking connection
+--- PASS: TestWrongMailParsing (0.01s)
 === RUN   TestNullMailFrom
 --- PASS: TestNullMailFrom (0.00s)
 === RUN   TestRcptBeforeMail
-_ conn.go:318        SMTP.Conn 127.0.0.1:50132: error: RCPT failed: 503  5.5.1 Sender not yet given
+_ conn.go:318        SMTP.Conn 127.0.0.1:36430: error: RCPT failed: 503  5.5.1 Sender not yet given
 --- PASS: TestRcptBeforeMail (0.00s)
 === RUN   TestRcptOption
 --- PASS: TestRcptOption (0.01s)
 === RUN   TestRelayForbidden
-2025-03-03 05:03:45.495991 127.0.0.1:50150 rejected from=from@somewhere to=[to@somewhere] - relay not allowed
-_ conn.go:318        SMTP.Conn 127.0.0.1:50150: error: RCPT failed: 503  5.7.1 Relay not allowed
+2026-04-05 11:29:13.695420 127.0.0.1:36446 rejected from=from@somewhere to=[to@somewhere] - relay not allowed
+_ conn.go:318        SMTP.Conn 127.0.0.1:36446: error: RCPT failed: 503  5.7.1 Relay not allowed
 --- PASS: TestRelayForbidden (0.00s)
 === RUN   TestTooManyRecipients
-2025-03-03 05:03:45.811526 127.0.0.1:35946 auth succeeded for testuser@localhost
-_ conn.go:318        SMTP.Conn 127.0.0.1:35946: error: RCPT failed: 452  4.5.3 Too many recipients
---- PASS: TestTooManyRecipients (0.32s)
+2026-04-05 11:29:13.802601 127.0.0.1:59830 auth succeeded for testuser@localhost
+_ conn.go:318        SMTP.Conn 127.0.0.1:59830: error: RCPT failed: 452  4.5.3 Too many recipients
+--- PASS: TestTooManyRecipients (0.11s)
 === RUN   TestRcptBrokenExists
-_ conn.go:622        SMTP.Conn 127.0.0.1:50162: error: error checking if user \"to@broken\" exists: failed to check if user exists
-2025-03-03 05:03:45.826996 127.0.0.1:50162 rejected from=from@localhost to=[to@broken] - error checking if user exists: failed to check if user exists
-_ conn.go:318        SMTP.Conn 127.0.0.1:50162: error: RCPT failed: 451  4.4.3 Temporary error checking address
---- PASS: TestRcptBrokenExists (0.01s)
+_ conn.go:622        SMTP.Conn 127.0.0.1:36452: error: error checking if user \"to@broken\" exists: failed to check if user exists
+2026-04-05 11:29:13.813203 127.0.0.1:36452 rejected from=from@localhost to=[to@broken] - error checking if user exists: failed to check if user exists
+_ conn.go:318        SMTP.Conn 127.0.0.1:36452: error: RCPT failed: 451  4.4.3 Temporary error checking address
+--- PASS: TestRcptBrokenExists (0.00s)
 === RUN   TestRcptUserDoesNotExist
-2025-03-03 05:03:45.829271 127.0.0.1:50176 rejected from=from@localhost to=[doesnotexist@localhost] - local user does not exist
-_ conn.go:318        SMTP.Conn 127.0.0.1:50176: error: RCPT failed: 550  5.1.1 Destination address is unknown (user does not exist)
+2026-04-05 11:29:13.816991 127.0.0.1:36466 rejected from=from@localhost to=[doesnotexist@localhost] - local user does not exist
+_ conn.go:318        SMTP.Conn 127.0.0.1:36466: error: RCPT failed: 550  5.1.1 Destination address is unknown (user does not exist)
 --- PASS: TestRcptUserDoesNotExist (0.00s)
 === RUN   TestTooMuchData
-_ conn.go:722        SMTP.Conn 127.0.0.1:50184: Queued from from@from to [to@localhost] - hV-elMndMSY
-2025-03-03 05:03:46.131984 hV-elMndMSY from=from@from queued ip=127.0.0.1:50184 to=[to@localhost]
-_ queue.go:308       Queue.SendLoop hV-elMndMSY: from from@from
-_ queue.go:367       Queue.SendLoop hV-elMndMSY: testuser@localhost sent
-2025-03-03 05:03:46.132132 hV-elMndMSY from=from@from to=testuser@localhost sent
-_ queue.go:342       Queue.SendLoop hV-elMndMSY: all done
-2025-03-03 05:03:46.196885 hV-elMndMSY from=from@from all done
-_ conn.go:722        SMTP.Conn 127.0.0.1:50184: Queued from from@from to [to@localhost] - aQDuteKQZRc
-2025-03-03 05:03:46.474616 aQDuteKQZRc from=from@from queued ip=127.0.0.1:50184 to=[to@localhost]
-_ queue.go:308       Queue.SendLoop aQDuteKQZRc: from from@from
-_ queue.go:367       Queue.SendLoop aQDuteKQZRc: testuser@localhost sent
-2025-03-03 05:03:46.474764 aQDuteKQZRc from=from@from to=testuser@localhost sent
-_ queue.go:342       Queue.SendLoop aQDuteKQZRc: all done
-2025-03-03 05:03:46.557826 aQDuteKQZRc from=from@from all done
-_ conn.go:318        SMTP.Conn 127.0.0.1:50184: error: DATA failed: 552  5.3.4 Message too big
-_ conn.go:722        SMTP.Conn 127.0.0.1:50184: Queued from from@from to [to@localhost] - P4BzsFLJPFc
-2025-03-03 05:03:46.986150 P4BzsFLJPFc from=from@from queued ip=127.0.0.1:50184 to=[to@localhost]
-_ queue.go:308       Queue.SendLoop P4BzsFLJPFc: from from@from
-_ queue.go:367       Queue.SendLoop P4BzsFLJPFc: testuser@localhost sent
-2025-03-03 05:03:46.986280 P4BzsFLJPFc from=from@from to=testuser@localhost sent
---- PASS: TestTooMuchData (1.16s)
+_ conn.go:722        SMTP.Conn 127.0.0.1:36472: Queued from from@from to [to@localhost] - SMD2X1Ie-zY
+2026-04-05 11:29:13.957431 SMD2X1Ie-zY from=from@from queued ip=127.0.0.1:36472 to=[to@localhost]
+_ queue.go:308       Queue.SendLoop SMD2X1Ie-zY: from from@from
+_ queue.go:367       Queue.SendLoop SMD2X1Ie-zY: testuser@localhost sent
+2026-04-05 11:29:13.957623 SMD2X1Ie-zY from=from@from to=testuser@localhost sent
+_ queue.go:342       Queue.SendLoop SMD2X1Ie-zY: all done
+2026-04-05 11:29:13.989474 SMD2X1Ie-zY from=from@from all done
+_ conn.go:722        SMTP.Conn 127.0.0.1:36472: Queued from from@from to [to@localhost] - -Eplxvf2ips
+2026-04-05 11:29:14.114811 -Eplxvf2ips from=from@from queued ip=127.0.0.1:36472 to=[to@localhost]
+_ queue.go:308       Queue.SendLoop -Eplxvf2ips: from from@from
+_ queue.go:367       Queue.SendLoop -Eplxvf2ips: testuser@localhost sent
+2026-04-05 11:29:14.115007 -Eplxvf2ips from=from@from to=testuser@localhost sent
+_ queue.go:342       Queue.SendLoop -Eplxvf2ips: all done
+2026-04-05 11:29:14.148646 -Eplxvf2ips from=from@from all done
+_ conn.go:318        SMTP.Conn 127.0.0.1:36472: error: DATA failed: 552  5.3.4 Message too big
+_ conn.go:722        SMTP.Conn 127.0.0.1:36472: Queued from from@from to [to@localhost] - 45tjuNZtRgQ
+2026-04-05 11:29:14.400966 45tjuNZtRgQ from=from@from queued ip=127.0.0.1:36472 to=[to@localhost]
+_ queue.go:308       Queue.SendLoop 45tjuNZtRgQ: from from@from
+_ queue.go:367       Queue.SendLoop 45tjuNZtRgQ: testuser@localhost sent
+2026-04-05 11:29:14.401150 45tjuNZtRgQ from=from@from to=testuser@localhost sent
+--- PASS: TestTooMuchData (0.58s)
 === RUN   TestSimpleCommands
-_ conn.go:318        SMTP.Conn 127.0.0.1:50200: error: VRFY failed: 502  5.5.1 You have a strange feeling for a moment, then it passes.
-_ conn.go:318        SMTP.Conn 127.0.0.1:50200: error: EXPN failed: 502  5.5.1 You feel disoriented for a moment.
---- PASS: TestSimpleCommands (0.01s)
+_ conn.go:318        SMTP.Conn 127.0.0.1:36486: error: VRFY failed: 502  5.5.1 You have a strange feeling for a moment, then it passes.
+_ conn.go:318        SMTP.Conn 127.0.0.1:36486: error: EXPN failed: 502  5.5.1 You feel disoriented for a moment.
+--- PASS: TestSimpleCommands (0.00s)
 === RUN   TestLongLines
-_ conn.go:318        SMTP.Conn 127.0.0.1:50202: error: unknown<\"\"> failed: 500  5.5.1 Unknown command
-_ conn.go:348        SMTP.Conn 127.0.0.1:50202: error: exiting with error: line too long
+_ conn.go:318        SMTP.Conn 127.0.0.1:36492: error: unknown<\"\"> failed: 500  5.5.1 Unknown command
+_ conn.go:348        SMTP.Conn 127.0.0.1:36492: error: exiting with error: line too long
 --- PASS: TestLongLines (0.00s)
 === RUN   TestReset
 --- PASS: TestReset (0.00s)
 === RUN   TestRepeatedStartTLS
-_ conn.go:318        SMTP.Conn 127.0.0.1:50230: error: STARTTLS failed: 503  5.5.1 You are already wearing that!
---- PASS: TestRepeatedStartTLS (0.00s)
+_ conn.go:318        SMTP.Conn 127.0.0.1:36510: error: STARTTLS failed: 503  5.5.1 You are already wearing that!
+--- PASS: TestRepeatedStartTLS (0.01s)
 === RUN   TestStartTLSOnTLS
-_ conn.go:318        SMTP.Conn 127.0.0.1:37524: error: STARTTLS failed: 503  5.5.1 You are already wearing that!
---- PASS: TestStartTLSOnTLS (0.00s)
+_ conn.go:318        SMTP.Conn 127.0.0.1:49152: error: STARTTLS failed: 503  5.5.1 You are already wearing that!
+--- PASS: TestStartTLSOnTLS (0.01s)
 === RUN   TestAddDKIMSigner
-    testlib.go:32: test directory: "/tmp/testlib_2410157441"
---- PASS: TestAddDKIMSigner (0.00s)
+    testlib.go:32: test directory: "/tmp/testlib_1738394483"
+--- PASS: TestAddDKIMSigner (0.01s)
 === RUN   FuzzConnection
 --- PASS: FuzzConnection (0.00s)
 PASS
-ok  	blitiri.com.ar/go/chasquid/internal/smtpsrv	3.482s
+ok  	blitiri.com.ar/go/chasquid/internal/smtpsrv	1.598s
 === RUN   TestParsePolicy
     sts_test.go:90: pol1: &{Version:STSv1 Mode:enforce MXs:[*.mail.example.com] MaxAge:34h17m36s}
 --- PASS: TestParsePolicy (0.00s)
@@ -2366,19 +2410,19 @@
     sts_test.go:210: policy404: got error as expected: HTTP response status code: 404
     sts_test.go:218: version99: got expected error: unknown policy version
     sts_test.go:226: domErr: got expected error: error for testing purposes
---- PASS: TestFetch (0.02s)
+--- PASS: TestFetch (0.00s)
 === RUN   TestPolicyTooBig
     sts_test.go:242: got error as expected: MTA-STS TXT record missing
---- PASS: TestPolicyTooBig (0.08s)
+--- PASS: TestPolicyTooBig (0.01s)
 === RUN   TestCacheBasics
-    testlib.go:32: test directory: "/tmp/testlib_1656393701"
+    testlib.go:32: test directory: "/tmp/testlib_1422086330"
     sts_test.go:277: cache fetched domain.com: &{STSv1 enforce [*.mail.domain.com] 1h0m0s}
     sts_test.go:286: cache fetched domain.com: &{STSv1 enforce [*.mail.domain.com] 1h0m0s}
     sts_test.go:300: cache fetched domain.com: &{STSv1 enforce [*.mail.domain.com] 1h0m0s}
     sts_test.go:309: cache fetched domErr: <nil>
 --- PASS: TestCacheBasics (0.00s)
 === RUN   TestCacheBadData
-    testlib.go:32: test directory: "/tmp/testlib_3731126174"
+    testlib.go:32: test directory: "/tmp/testlib_1370693015"
     sts_test.go:349: cache fetched domain.com: &{STSv1 enforce [*.mail.domain.com] 1h0m0s}
     sts_test.go:363: cache fetched domain.com: &{STSv1 enforce [*.mail.domain.com] 1h0m0s}
     sts_test.go:372: cache fetched domain.com: &{STSv1 enforce [*.mail.domain.com] 1h0m0s}
@@ -2387,13 +2431,13 @@
     sts_test.go:372: cache fetched domain.com: &{STSv1 enforce [*.mail.domain.com] 1h0m0s}
 --- PASS: TestCacheBadData (0.00s)
 === RUN   TestCacheRefresh
-    testlib.go:32: test directory: "/tmp/testlib_396970958"
+    testlib.go:32: test directory: "/tmp/testlib_1642049663"
     sts_test.go:389: Fetch "refresh-test": &{STSv1 enforce [mx] 1m40s}
     sts_test.go:389: Fetch "refresh-test": &{STSv1 enforce [mx] 1m40s}
     sts_test.go:389: Fetch "refresh-test": &{STSv1 enforce [mx] 3m20s}
 --- PASS: TestCacheRefresh (0.01s)
 === RUN   TestCacheSlashSafe
-    testlib.go:32: test directory: "/tmp/testlib_1358492733"
+    testlib.go:32: test directory: "/tmp/testlib_500807180"
     sts_test.go:464: recovered: domain contains slash
 --- PASS: TestCacheSlashSafe (0.00s)
 === RUN   TestURLForDomain
@@ -2403,9 +2447,9 @@
 === RUN   TestHTTPGet
 --- PASS: TestHTTPGet (0.00s)
 PASS
-ok  	blitiri.com.ar/go/chasquid/internal/sts	0.199s
+ok  	blitiri.com.ar/go/chasquid/internal/sts	0.060s
 === RUN   TestBasic
-    testlib.go:32: test directory: "/tmp/testlib_1252584692"
+    testlib.go:32: test directory: "/tmp/testlib_575725600"
 --- PASS: TestBasic (0.00s)
 === RUN   TestRemoveCheck
     testlib_test.go:33: recovered: invalid/dangerous directory
@@ -2416,55 +2460,55 @@
     testlib_test.go:60: recovered: invalid/dangerous path
 --- PASS: TestRewriteSafeguard (0.00s)
 === RUN   TestRewrite
-    testlib.go:32: test directory: "/tmp/testlib_1918183047"
+    testlib.go:32: test directory: "/tmp/testlib_3536158775"
 --- PASS: TestRewrite (0.00s)
 === RUN   TestGetFreePort
 --- PASS: TestGetFreePort (0.00s)
 === RUN   TestWaitFor
 --- PASS: TestWaitFor (0.02s)
 === RUN   TestGenerateCert
-    testlib.go:32: test directory: "/tmp/testlib_3622976114"
---- PASS: TestGenerateCert (0.13s)
+    testlib.go:32: test directory: "/tmp/testlib_3588692084"
+--- PASS: TestGenerateCert (0.18s)
 === RUN   TestGenerateCertBadDir
---- PASS: TestGenerateCertBadDir (0.45s)
+--- PASS: TestGenerateCertBadDir (0.05s)
 PASS
-ok  	blitiri.com.ar/go/chasquid/internal/testlib	0.688s
+ok  	blitiri.com.ar/go/chasquid/internal/testlib	0.271s
 === RUN   TestVersionName
 --- PASS: TestVersionName (0.00s)
 === RUN   TestCipherSuiteName
 --- PASS: TestCipherSuiteName (0.00s)
 PASS
-ok  	blitiri.com.ar/go/chasquid/internal/tlsconst	0.056s
+ok  	blitiri.com.ar/go/chasquid/internal/tlsconst	0.008s
 ?   	blitiri.com.ar/go/chasquid/internal/trace	[no test files]
 === RUN   TestEmptyLoad
-    userdb_test.go:37: file: "/tmp/userdb_test2062082825"
-    userdb_test.go:37: file: "/tmp/userdb_test1254167249"
+    userdb_test.go:37: file: "/tmp/userdb_test2764432761"
+    userdb_test.go:37: file: "/tmp/userdb_test536140787"
 --- PASS: TestEmptyLoad (0.00s)
 === RUN   TestWrite
-    userdb_test.go:37: file: "/tmp/userdb_test1414895537"
---- PASS: TestWrite (1.67s)
+    userdb_test.go:37: file: "/tmp/userdb_test1554074399"
+--- PASS: TestWrite (0.69s)
 === RUN   TestNew
---- PASS: TestNew (0.18s)
+--- PASS: TestNew (0.09s)
 === RUN   TestInvalidUsername
-    userdb_test.go:37: file: "/tmp/userdb_test2487358459"
+    userdb_test.go:37: file: "/tmp/userdb_test1786648898"
 --- PASS: TestInvalidUsername (0.00s)
 === RUN   TestPlainScheme
-    userdb_test.go:37: file: "/tmp/userdb_test2803763334"
+    userdb_test.go:37: file: "/tmp/userdb_test1648641794"
 --- PASS: TestPlainScheme (0.00s)
 === RUN   TestDeniedScheme
-    userdb_test.go:37: file: "/tmp/userdb_test3282265677"
+    userdb_test.go:37: file: "/tmp/userdb_test3093772396"
 --- PASS: TestDeniedScheme (0.00s)
 === RUN   TestReload
-    userdb_test.go:37: file: "/tmp/userdb_test2967761807"
+    userdb_test.go:37: file: "/tmp/userdb_test2597005097"
 --- PASS: TestReload (0.00s)
 === RUN   TestRemoveUser
-    userdb_test.go:37: file: "/tmp/userdb_test1060578414"
---- PASS: TestRemoveUser (0.20s)
+    userdb_test.go:37: file: "/tmp/userdb_test1393765806"
+--- PASS: TestRemoveUser (0.10s)
 === RUN   TestExists
-    userdb_test.go:37: file: "/tmp/userdb_test1558677626"
---- PASS: TestExists (0.17s)
+    userdb_test.go:37: file: "/tmp/userdb_test57548323"
+--- PASS: TestExists (0.06s)
 PASS
-ok  	blitiri.com.ar/go/chasquid/internal/userdb	2.288s
+ok  	blitiri.com.ar/go/chasquid/internal/userdb	0.964s
    create-stamp debian/debhelper-build-stamp
    dh_testroot -O--buildsystem=golang
    dh_prep -O--buildsystem=golang
@@ -2527,12 +2571,14 @@
 dpkg-buildpackage: info: binary-only upload (no source included)
 dpkg-genchanges: info: including full source code in upload
 I: copying local configuration
+I: user script /srv/workspace/pbuilder/3221856/tmp/hooks/B01_cleanup starting
+I: user script /srv/workspace/pbuilder/3221856/tmp/hooks/B01_cleanup finished
 I: unmounting dev/ptmx filesystem
 I: unmounting dev/pts filesystem
 I: unmounting dev/shm filesystem
 I: unmounting proc filesystem
 I: unmounting sys filesystem
 I: cleaning the build env 
-I: removing directory /srv/workspace/pbuilder/1861360 and its subdirectories
-I: Current time: Sun Mar  2 17:05:04 -12 2025
-I: pbuilder-time-stamp: 1740978304
+I: removing directory /srv/workspace/pbuilder/3221856 and its subdirectories
+I: Current time: Mon Apr  6 01:29:35 +14 2026
+I: pbuilder-time-stamp: 1775388575