UNPKG

mailisk

Version:

Mailisk library for NodeJS

70 lines (69 loc) 1.99 kB
var __defProp = Object.defineProperty; var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); // src/mailisk.ts import axios from "axios"; import nodemailer from "nodemailer"; var MailiskClient = class { constructor({ apiKey, baseUrl }) { this.axiosInstance = axios.create({ headers: { "X-Api-Key": apiKey }, baseURL: baseUrl || "https://api.mailisk.com/" }); } axiosInstance; async listNamespaces() { return (await this.axiosInstance.get("api/namespaces")).data; } async sendVirtualEmail(namespace, params) { const smtpSettings = await this.getSmtpSettings(namespace); const transport = nodemailer.createTransport({ host: smtpSettings.data.host, port: smtpSettings.data.port, secure: false, auth: { user: smtpSettings.data.username, pass: smtpSettings.data.password } }); const { from, to, subject, text, html } = params; await transport.sendMail({ from, to, subject, text, html }); transport.close(); } async searchInbox(namespace, params, config) { let _params = { ...params }; if (params?.from_timestamp === void 0 || params?.from_timestamp === null) { _params.from_timestamp = Math.floor(new Date().getTime() / 1e3) - 15 * 60; } if (params?.wait !== false) { _params.wait = true; } let _config = { ...config }; if (!config?.maxRedirects) { _config.maxRedirects = 99999; } if (_params.wait && !config?.timeout) { _config.timeout = 1e3 * 60 * 5; } return (await this.axiosInstance.get(`api/emails/${namespace}/inbox`, { ..._config, params: _params })).data; } async getSmtpSettings(namespace) { const result = await this.axiosInstance.get(`api/smtp/${namespace}`); return result.data; } }; __name(MailiskClient, "MailiskClient"); export { MailiskClient }; //# sourceMappingURL=index.mjs.map