mirror of
https://github.com/spacebarchat/server.git
synced 2026-08-28 09:34:07 +00:00
Consistent imports and instructions for email
This commit is contained in:
@@ -34,7 +34,7 @@ export class MailGunEmailClient extends BaseEmailClient {
|
||||
|
||||
try {
|
||||
// try to import the transporter package
|
||||
this.mailGun = new (await import("mailgun.js")).default(FormData);
|
||||
this.mailGun = new (require("mailgun.js").default)(FormData);
|
||||
} catch {
|
||||
// if the package is not installed, log an error and return void so we don't set the transporter
|
||||
console.error("[Email] MailGun transport is not installed. Please run `npm install mailgun.js --save-optional` to install it.");
|
||||
|
||||
@@ -39,7 +39,7 @@ export class MailJetEmailClient extends BaseEmailClient {
|
||||
});
|
||||
} catch {
|
||||
// if the package is not installed, log an error and return void so we don't set the transporter
|
||||
console.error("[Email] MailJet transport is not installed. Please run `npm install node-mailjet --save-optional` to install it.");
|
||||
console.error("[Email] MailJet transport is not installed. Please run `npm install --no-save node-mailjet` to install it.");
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,16 +20,17 @@ import { BaseEmailClient, IEmail } from "./IEmailClient";
|
||||
import { Config } from "@spacebar/util";
|
||||
|
||||
export class SMTPEmailClient extends BaseEmailClient {
|
||||
// sendGrid?: unknown;
|
||||
nodemailer?: typeof import("nodemailer");
|
||||
transporter: import("nodemailer").Transporter;
|
||||
nodemailer?: unknown;
|
||||
transporter: unknown;
|
||||
// nodemailer?: typeof import("nodemailer"); // for dev
|
||||
// transporter: import("nodemailer").Transporter; // for dev
|
||||
override async init(): Promise<void> {
|
||||
try {
|
||||
// try to import the transporter package
|
||||
this.nodemailer = (await import("nodemailer")).default;
|
||||
this.nodemailer = require("nodemailer").default;
|
||||
} catch {
|
||||
// if the package is not installed, log an error and return void so we don't set the transporter
|
||||
console.error("[Email] nodemailer is not installed. Please run `npm install nodemailer --save-optional` to install it.");
|
||||
console.error("[Email] nodemailer is not installed. Please run `npm install --no-save nodemailer` to install it.");
|
||||
return;
|
||||
}
|
||||
// get configuration
|
||||
@@ -44,6 +45,8 @@ export class SMTPEmailClient extends BaseEmailClient {
|
||||
);
|
||||
|
||||
// construct the transporter
|
||||
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
||||
// @ts-expect-error
|
||||
const transporter = this.nodemailer.createTransport({
|
||||
host,
|
||||
port,
|
||||
@@ -55,7 +58,7 @@ export class SMTPEmailClient extends BaseEmailClient {
|
||||
});
|
||||
|
||||
// verify connection configuration
|
||||
const verified = await transporter.verify().catch((err) => {
|
||||
const verified = await transporter.verify().catch((err: unknown) => {
|
||||
console.error("[Email] SMTP verification failed:", err);
|
||||
return;
|
||||
});
|
||||
@@ -70,6 +73,8 @@ export class SMTPEmailClient extends BaseEmailClient {
|
||||
if (!this.nodemailer) throw new Error("nodemailer not initialized");
|
||||
if (!this.transporter) throw new Error("nodemailer transporter not initialized");
|
||||
|
||||
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
||||
// @ts-expect-error
|
||||
await this.transporter.sendMail({
|
||||
to: email.to,
|
||||
from: email.from,
|
||||
|
||||
@@ -31,10 +31,10 @@ export class SendGridEmailClient extends BaseEmailClient {
|
||||
|
||||
try {
|
||||
// try to import the transporter package
|
||||
this.sendGrid = (await import("@sendgrid/mail")).default;
|
||||
this.sendGrid = require("@sendgrid/mail").default;
|
||||
} catch {
|
||||
// if the package is not installed, log an error and return void so we don't set the transporter
|
||||
console.error("[Email] SendGrid transport is not installed. Please run `npm install @sendgrid/mail --save-optional` to install it.");
|
||||
console.error("[Email] SendGrid transport is not installed. Please run `npm install --no-save @sendgrid/mail` to install it.");
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user