module

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.

Source
render(msg : Message, now : Time = Time.utc) : String

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.

Source
send(host : String, port : Int32, user : String, password : String, msg : Message) : Nil

Envoie msg via host:port (STARTTLS obligatoire, auth user/password).

Source

Nested types