Beryl::Smtp
Client SMTP minimal, pour les courriels de beryl lui-même (récapitulatif
d'une tâche de flotte) : submission (587) + STARTTLS + AUTH PLAIN, message
texte UTF-8. Les serveurs, eux, passent par dma (recette smtp-relay) ;
beryl envoie au MÊME relais avec les MÊMES identifiants du coffre
([mail] SMTP_RELAY_USER/PASSWORD/TO), sans dépendre d'aucun serveur.
Le dialogue (deliver) prend un IO : testable sans réseau.
Instance methods
deliver(io : IO, user : String, password : String, msg : Message, upgrade : Proc(IO, IO) | Nil = nil) : Nil
Dialogue SMTP sur io. upgrade (STARTTLS) rend l'IO chiffré ; nil =
pas de STARTTLS (tests uniquement). Lève Error sur toute réponse
inattendue, avec la réplique du serveur.
Message RFC 5322 : objet encodé (RFC 2047), corps UTF-8 en base64 (aucune ligne ne commence par un point → pas de bourrage nécessaire). Pur.