CluPilotCloud/app/Services
nexxo ebe29f8a5d Stop demanding a cipher, a real port, or a decrypted password a mailbox never uses
MailboxTester required a usable SECRETS_KEY unconditionally, refusing an
unauthenticated relay's test-send on a fresh install with no key yet, even
though real sending never touches the cipher for that mailbox. Gated the
check on authenticates, same as the password-presence check beside it.

Comparison pass across MailboxTester and MailboxTransport turned up two more
of the same shape. MailboxTransport's delegate-cache fingerprint decrypted
$box->password unconditionally, even when unauthenticated and never going to
use it — a mailbox that once authenticated, stored a password, and later had
authenticates unchecked would crash real sending the moment SECRETS_KEY
became unusable. And MailboxTester had no guard against a stored port <1;
Symfony silently reinterprets that as port 25 rather than refusing it, so the
test button could reach whatever happens to listen there and report success
for a configuration MailboxTransport refuses outright.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-28 06:21:28 +02:00
..
Billing Measure availability, and let a customer move down again 2026-07-27 16:41:15 +02:00
Deployment Ask the tunnel gateway where it actually listens 2026-07-27 14:43:23 +02:00
Dns fix(dns): deleting a record that is already gone is success 2026-07-25 23:54:45 +02:00
Mail Stop demanding a cipher, a real port, or a decrypted password a mailbox never uses 2026-07-28 06:21:28 +02:00
Maintenance Keep the purpose mailer through the queue instead of losing it to the default 2026-07-28 03:50:02 +02:00
Monitoring Move the console off /admin, give the status page its own address, and measure monitoring 2026-07-27 06:05:40 +02:00
Proxmox feat(traffic): meter the monthly allowance, show it, throttle instead of blocking 2026-07-25 23:33:47 +02:00
Secrets Make isUsable() apply the same 32-byte rule encrypter() does 2026-07-28 05:09:09 +02:00
Ssh fix(engine): long SSH command timeout; wg peer removal on privileged worker 2026-07-25 11:01:02 +02:00
Stripe Manage the Stripe key from the console, behind a password and a test 2026-07-27 09:01:16 +02:00
Traefik fix(engine-b): write Traefik route to the serving host over SSH, not locally 2026-07-25 12:55:24 +02:00
Traffic feat(billing): the plan catalogue becomes three tables, and config stops selling 2026-07-26 12:05:56 +02:00
Wireguard feat(admin): administrator access to a customer's Nextcloud 2026-07-26 05:30:59 +02:00