SMTP rather than a provider's API, deliberately: every provider speaks it, so shipping this one
channel reaches all of them without this package choosing a vendor for you. A provider with an API
you prefer is a factory away.
nodemailer is an optional peer, imported lazily, so an application that sends no mail carries no
mail dependency. The transport is built once per channel instance and the instance is rebuilt with
the container: a transport is a resource, not state, and nodemailer pools its own connections,
so an application under load should pass a transport it owns.
Email, over SMTP.
SMTP rather than a provider's API, deliberately: every provider speaks it, so shipping this one channel reaches all of them without this package choosing a vendor for you. A provider with an API you prefer is a
factoryaway.nodemaileris an optional peer, imported lazily, so an application that sends no mail carries no mail dependency. The transport is built once per channel instance and the instance is rebuilt with the container: a transport is a resource, not state, and nodemailer pools its own connections, so an application under load should pass a transport it owns.