44 lines
1.2 KiB
TypeScript
44 lines
1.2 KiB
TypeScript
import type { IUnifiedEmailServerOptions } from '@push.rocks/smartmta';
|
|
|
|
export interface IEmailPortConfig {
|
|
/** External to internal SMTP port mapping. */
|
|
portMapping?: Record<number, number>;
|
|
/** Custom route settings for specific external ports. */
|
|
portSettings?: Record<number, {
|
|
terminateTls?: boolean;
|
|
routeName?: string;
|
|
[key: string]: unknown;
|
|
}>;
|
|
/** Path to store received emails, when configured by the runtime. */
|
|
receivedEmailsPath?: string;
|
|
}
|
|
|
|
export interface IEmailServerSettings {
|
|
enabled: boolean;
|
|
hostname: string | null;
|
|
ports: number[];
|
|
portMapping: Record<number, number> | null;
|
|
receivedEmailsPath: string | null;
|
|
maxMessageSize: number | null;
|
|
domainCount: number;
|
|
routeCount: number;
|
|
authUserCount: number;
|
|
updatedAt: number;
|
|
updatedBy: string;
|
|
}
|
|
|
|
export interface IEmailServerSettingsSeed {
|
|
enabled?: boolean;
|
|
emailConfig?: IUnifiedEmailServerOptions;
|
|
emailPortConfig?: IEmailPortConfig;
|
|
}
|
|
|
|
export type TEmailServerSettingsUpdate = {
|
|
enabled?: boolean;
|
|
hostname?: string | null;
|
|
ports?: number[];
|
|
portMapping?: Record<number, number> | null;
|
|
receivedEmailsPath?: string | null;
|
|
maxMessageSize?: number | null;
|
|
};
|