@travetto/email
Version:
Email transmission module.
25 lines (20 loc) • 669 B
text/typescript
import * as nodemailer from 'nodemailer';
import { MailTransport, MessageOptions, SentMessage } from '../../src/types';
export abstract class BaseTransport extends MailTransport {
private transporter: nodemailer.Transporter;
abstract getTransport(): nodemailer.Transport;
async postConstruct() {
this.transporter = nodemailer.createTransport(this.getTransport());
}
sendMail(mail: MessageOptions): Promise<SentMessage> {
return new Promise<SentMessage>((resolve, reject) => {
this.transporter.sendMail(mail, (err, val) => {
if (err) {
reject(err);
} else {
resolve(val);
}
});
});
}
}