54 lines
1.2 KiB
TypeScript
54 lines
1.2 KiB
TypeScript
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
|
|
}
|