alpha
Login
or
Join now
jcollie.dev
/
zig-smtp
Star
0
Fork
0
Atom
Configure Feed
Issues
Pull Requests
Commits
Tags
Feed URL
Select the types of activity you want to include in your feed.
An SMTP client and server library for Zig implementing RFC 5321.
Star
0
Fork
0
Atom
Configure Feed
Issues
Pull Requests
Commits
Tags
Feed URL
Select the types of activity you want to include in your feed.
Overview
Issues
Pulls
Pipelines
zig-smtp
/
nix
2 files
at
85c7e2581e540ec183809627bc90abfaf041df1e
Jeffrey C. Ollie
Add the SMTPUTF8 extension (RFC 6531)
13d ago
75bfa30c
interop-test.nix
Add the SMTPUTF8 extension (RFC 6531) The server advertises SMTPUTF8 and accepts the valueless SMTPUTF8 MAIL parameter (a value gets 501). Non-ASCII envelope addresses on MAIL and RCPT are rejected with 553 5.6.7 (RFC 6533) unless the transaction requested SMTPUTF8, and must be well-formed UTF-8 even then. The flag rides the transaction state and reaches handlers via Envelope.smtputf8. The client gains mailFromUtf8 and the CLI gains send --smtputf8, which errors cleanly when the server does not advertise the extension. The torture script and the byte-for-byte gauntlet gain the SMTPUTF8 cases, and the VM interop suite delivers with a UTF-8 sender to real Postfix (ICU-enabled in nixpkgs); 19 subtests pass. Exim interop is skipped since nixpkgs exim is built without SUPPORT_I18N. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012HBHFhoTYa8TU9GLwobfbx
1 week ago
package.nix
Add Nix package and NixOS VM interop tests nix/package.nix builds zsmtp with zig_0_16 and runs the unit tests; the tls.zig dependency is provided offline by materializing it into the project-local zig-pkg/<hash>/ directory with only the files from the dependency's paths list, so Zig's content hash matches. nix/interop-test.nix exercises zsmtp against third-party implementations in one VM: - zsmtp client -> Postfix: plaintext (25), STARTTLS (25), implicit TLS (465, submissions wrapper mode), verified via alice's maildir spool - swaks -> zsmtp server: plaintext and STARTTLS (snakeoil EC cert), verified via the server's journal Exposed as packages.zsmtp/default and checks.{zsmtp,interop}. Postfix on NixOS delivers maildir-style (mail_spool_directory has a trailing slash), so assertions grep the directory recursively, with 60s timeouts to fail fast. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012HBHFhoTYa8TU9GLwobfbx
2 weeks ago