UNPKG

maildev

Version:

SMTP Server and Web Interface for reading and testing emails during development

265 lines 5.84 kB
/** * MailDev CLI Configuration Types * * Complete configuration interface for MailDev v3 CLI * maintaining full backward compatibility with v2's options */ import type { HideableExtension } from '@maildev/smtp'; /** * SMTP server authentication configuration */ export interface SMTPAuthConfig { user: string; pass: string; } /** * TLS/SSL configuration for SMTP or HTTPS */ export interface TLSConfig { cert: string; key: string; } /** * Outgoing relay server configuration */ export interface RelayConfig { host: string; port: number; user?: string; pass?: string; secure?: boolean; } /** * Auto-relay configuration */ export interface AutoRelayConfig { enabled: boolean; recipient?: string; rules?: string; } /** * Web/API server authentication configuration */ export interface WebAuthConfig { user: string; pass: string; } /** * Logging configuration */ export interface LogConfig { verbose: boolean; silent: boolean; logMailContents: boolean; } /** * Complete MailDev configuration interface * * All 30+ options from v2 plus new v3 options */ export interface MailDevConfig { /** * SMTP server port * CLI: -s, --smtp <port> * Env: MAILDEV_SMTP_PORT * @default 1025 */ smtp: number; /** * IP address to bind SMTP server * CLI: --ip <address> * Env: MAILDEV_IP * @default '::' */ ip: string; /** * SMTP authentication username * CLI: --incoming-user <user> */ incomingUser?: string; /** * SMTP authentication password * CLI: --incoming-pass <pass> */ incomingPass?: string; /** * Enable TLS/SSL for SMTP * CLI: --incoming-secure */ incomingSecure?: boolean; /** * Path to TLS certificate for SMTP * CLI: --incoming-cert <path> */ incomingCert?: string; /** * Path to TLS key for SMTP * CLI: --incoming-key <path> */ incomingKey?: string; /** * SMTP extensions to hide * CLI: --hide-extensions <list> * Comma-separated: STARTTLS,PIPELINING,8BITMIME,SMTPUTF8 */ hideExtensions?: HideableExtension[]; /** * Web/API server port * CLI: -w, --web <port> * Env: MAILDEV_WEB_PORT * @default 1080 */ web: number; /** * IP address to bind web server * CLI: --web-ip <address> * Env: MAILDEV_WEB_IP * @default '0.0.0.0' */ webIp: string; /** * Web interface HTTP auth username * CLI: --web-user <user> */ webUser?: string; /** * Web interface HTTP auth password * CLI: --web-pass <pass> */ webPass?: string; /** * Base URL pathname for web interface * CLI: --base-pathname <path> * @default '/' */ basePathname: string; /** * Disable web interface entirely * CLI: --disable-web */ disableWeb?: boolean; /** * Enable HTTPS for web server * CLI: --https */ https?: boolean; /** * Path to HTTPS key file * CLI: --https-key <file> */ httpsKey?: string; /** * Path to HTTPS certificate file * CLI: --https-cert <file> */ httpsCert?: string; /** * Outgoing relay SMTP host * CLI: --outgoing-host <host> */ outgoingHost?: string; /** * Outgoing relay SMTP port * CLI: --outgoing-port <port> */ outgoingPort?: number; /** * Outgoing relay authentication username * CLI: --outgoing-user <user> */ outgoingUser?: string; /** * Outgoing relay authentication password * CLI: --outgoing-pass <password> */ outgoingPass?: string; /** * Use TLS/SSL for outgoing relay * CLI: --outgoing-secure */ outgoingSecure?: boolean; /** * Enable auto-relay mode * CLI: --auto-relay [email] * If email provided, all emails relay to that address */ autoRelay?: boolean | string; /** * Path to auto-relay rules file * CLI: --auto-relay-rules <file> */ autoRelayRules?: string; /** * Directory for persisting emails * CLI: --mail-directory <path> * If not set, uses in-memory storage */ mailDirectory?: string; /** * Enable verbose logging * CLI: -v, --verbose */ verbose?: boolean; /** * Suppress all output * CLI: --silent */ silent?: boolean; /** * Log JSON representation of emails * CLI: --log-mail-contents */ logMailContents?: boolean; /** * Enable MCP server at /mcp endpoint * CLI: --mcp * @default false */ mcp?: boolean; /** * Explicit config file path * CLI: --config <file> */ config?: string; } /** * Partial configuration (for merging) */ export type PartialMailDevConfig = Partial<MailDevConfig>; /** * CLI options as parsed by Commander.js * (may have different names/casing than config) */ export interface CLIOptions { smtp?: string; ip?: string; incomingUser?: string; incomingPass?: string; incomingSecure?: boolean; incomingCert?: string; incomingKey?: string; hideExtensions?: string; web?: string; webIp?: string; webUser?: string; webPass?: string; basePathname?: string; disableWeb?: boolean; https?: boolean; httpsKey?: string; httpsCert?: string; outgoingHost?: string; outgoingPort?: string; outgoingUser?: string; outgoingPass?: string; outgoingSecure?: boolean; autoRelay?: boolean | string; autoRelayRules?: string; mailDirectory?: string; verbose?: boolean; silent?: boolean; logMailContents?: boolean; mcp?: boolean; config?: string; } //# sourceMappingURL=types.d.ts.map