@mostajs/smtp-lite
v0.1.0
Published
Client SMTP minimal ZÉRO-DÉPENDANCE (node:net+tls, soumission 587 STARTTLS, AUTH LOGIN). Variante « lite » sans natif ni npm (comme @mostajs/auth-lite) pour apps zéro-build / WebContainer. Pour les drivers riches (Resend/SES/Brevo…) voir @mostajs/mailer.
Maintainers
Readme
@mostajs/smtp-lite
Auteur : Dr Hamid MADANI [email protected] · Licence : AGPL-3.0-or-later
Transport SMTP minimal zéro-dépendance (uniquement node:net + node:tls) : soumission sur le port 587 avec STARTTLS et AUTH LOGIN. Variante « lite » (comme @mostajs/auth-lite) pour les apps zéro-build / vendorisées / WebContainer, sans nodemailer ni addon natif.
Pour un dispatcher complet multi-drivers (Resend, SES, Postmark, Brevo, logs, idempotence), voir
@mostajs/mailer— qui peut justement consommer ce module via son driversmtp-lite.
API
import { createSmtpTransport, sendMail, encodeSubject } from '@mostajs/smtp-lite';
// Transport réutilisable
const t = createSmtpTransport({ host: 'smtp.ionos.fr', port: 587, user: '[email protected]', pass: '***' });
await t.send({ from: '[email protected]', fromName: 'Hadhinat', to: '[email protected]', subject: 'Bonjour', html: '<p>…</p>' });
// Ou en une fois
await sendMail({ host, port, user, pass }, { from, fromName, to, subject, html, text });createSmtpTransport(server) → { server, send(mail) }sendMail(server, mail) → { ok: true }(throw avec le code SMTP en cas de rejet)encodeSubject(s)/encodeDisplayName(name): encodage RFC 2047 des en-têtes non-ASCII (évite les rejets554sur sujets/noms accentués).
Notes
- Les en-têtes
Subjectet le nom d'affichageFromsont encodés RFC 2047 si non-ASCII (sinon certains serveurs renvoient554 Transaction failed). - Dot-stuffing RFC 5321 appliqué au corps.
- Timeouts (connexion + réponse) et propagation d'erreur socket intégrés.
