export default class MailBuilder { message: any; constructor(message = {}) { this.message = message; } from(addresses: string[] | string): MailBuilder { this.message.from = addresses; return this; } to(addresses: string[] | string): MailBuilder { this.message.to = addresses; return this; } cc(addresses: string[] | string): MailBuilder { this.message.cc = addresses; return this; } bcc(addresses: string[] | string): MailBuilder { this.message.bcc = addresses; return this; } subject(subject: string): MailBuilder { this.message.subject = subject; return this; } text(textContent: string): MailBuilder { this.message.text = textContent; return this; } html(htmlContent: string): MailBuilder { this.message.html = htmlContent; return this; } inReplyTo(messageID: string): MailBuilder { this.message.inReplyTo = messageID; return this; } inReplySubject(originSubject: string): MailBuilder { // todo concate if multiple ? this.message.subject = "RE: " + originSubject; return this; } // https://cr.yp.to/immhf/thread.html }