import * as plugins from './smartsmtp.plugins'; export interface ISmartSmtpOptions { smtpServer: string; smtpUser: string; smtpPassword: string; } /** * Use it to send mails via smtp */ export class Smartsmtp { public nodemailerTransport: plugins.nodemailer.Transporter; constructor(optionsArg: ISmartSmtpOptions) { this.nodemailerTransport = plugins.nodemailer.createTransport({ host: optionsArg.smtpServer, port: 465, secure: true, // upgrade later with STARTTLS auth: { user: optionsArg.smtpUser, pass: optionsArg.smtpPassword } }); } /** * sends a SmartMail */ public async sendSmartMail( smartmailArg: plugins.smartmail.Smartmail, toArg: string, dataArg = {} ) { const message = { from: smartmailArg.options.from, to: toArg, subject: smartmailArg.getSubject(dataArg), text: smartmailArg.getBody(dataArg), html: smartmailArg.getBody(dataArg) }; const response = await this.nodemailerTransport.sendMail(message); return response; } }