Abstraction of various email services.
interface Email {
function send(config:EmailConfig):Promise<Noise>;
}
typedef EmailConfig = {
from:Address,
to:Array<Address>,
?cc:Array<Address>,
?bcc:Array<Address>,
subject:String,
content:Content,
?attachments:Array<Attachment>
}
Pick one implementation from the why.email
package or roll your own.