130 lines
3.5 KiB
TypeScript
130 lines
3.5 KiB
TypeScript
|
|
/**
|
||
|
|
* SMTP Client Constants and Error Codes
|
||
|
|
* All constants, error codes, and enums for SMTP client operations
|
||
|
|
*/
|
||
|
|
/**
|
||
|
|
* SMTP response codes
|
||
|
|
*/
|
||
|
|
export declare const SMTP_CODES: {
|
||
|
|
readonly SERVICE_READY: 220;
|
||
|
|
readonly SERVICE_CLOSING: 221;
|
||
|
|
readonly AUTHENTICATION_SUCCESSFUL: 235;
|
||
|
|
readonly REQUESTED_ACTION_OK: 250;
|
||
|
|
readonly USER_NOT_LOCAL: 251;
|
||
|
|
readonly CANNOT_VERIFY_USER: 252;
|
||
|
|
readonly START_MAIL_INPUT: 354;
|
||
|
|
readonly SERVICE_NOT_AVAILABLE: 421;
|
||
|
|
readonly MAILBOX_BUSY: 450;
|
||
|
|
readonly LOCAL_ERROR: 451;
|
||
|
|
readonly INSUFFICIENT_STORAGE: 452;
|
||
|
|
readonly UNABLE_TO_ACCOMMODATE: 455;
|
||
|
|
readonly SYNTAX_ERROR: 500;
|
||
|
|
readonly SYNTAX_ERROR_PARAMETERS: 501;
|
||
|
|
readonly COMMAND_NOT_IMPLEMENTED: 502;
|
||
|
|
readonly BAD_SEQUENCE: 503;
|
||
|
|
readonly PARAMETER_NOT_IMPLEMENTED: 504;
|
||
|
|
readonly MAILBOX_UNAVAILABLE: 550;
|
||
|
|
readonly USER_NOT_LOCAL_TRY_FORWARD: 551;
|
||
|
|
readonly EXCEEDED_STORAGE: 552;
|
||
|
|
readonly MAILBOX_NAME_NOT_ALLOWED: 553;
|
||
|
|
readonly TRANSACTION_FAILED: 554;
|
||
|
|
};
|
||
|
|
/**
|
||
|
|
* SMTP command names
|
||
|
|
*/
|
||
|
|
export declare const SMTP_COMMANDS: {
|
||
|
|
readonly HELO: "HELO";
|
||
|
|
readonly EHLO: "EHLO";
|
||
|
|
readonly MAIL_FROM: "MAIL FROM";
|
||
|
|
readonly RCPT_TO: "RCPT TO";
|
||
|
|
readonly DATA: "DATA";
|
||
|
|
readonly RSET: "RSET";
|
||
|
|
readonly NOOP: "NOOP";
|
||
|
|
readonly QUIT: "QUIT";
|
||
|
|
readonly STARTTLS: "STARTTLS";
|
||
|
|
readonly AUTH: "AUTH";
|
||
|
|
};
|
||
|
|
/**
|
||
|
|
* Authentication methods
|
||
|
|
*/
|
||
|
|
export declare const AUTH_METHODS: {
|
||
|
|
readonly PLAIN: "PLAIN";
|
||
|
|
readonly LOGIN: "LOGIN";
|
||
|
|
readonly OAUTH2: "XOAUTH2";
|
||
|
|
readonly CRAM_MD5: "CRAM-MD5";
|
||
|
|
};
|
||
|
|
/**
|
||
|
|
* Common SMTP extensions
|
||
|
|
*/
|
||
|
|
export declare const SMTP_EXTENSIONS: {
|
||
|
|
readonly PIPELINING: "PIPELINING";
|
||
|
|
readonly SIZE: "SIZE";
|
||
|
|
readonly STARTTLS: "STARTTLS";
|
||
|
|
readonly AUTH: "AUTH";
|
||
|
|
readonly EIGHT_BIT_MIME: "8BITMIME";
|
||
|
|
readonly CHUNKING: "CHUNKING";
|
||
|
|
readonly ENHANCED_STATUS_CODES: "ENHANCEDSTATUSCODES";
|
||
|
|
readonly DSN: "DSN";
|
||
|
|
};
|
||
|
|
/**
|
||
|
|
* Default configuration values
|
||
|
|
*/
|
||
|
|
export declare const DEFAULTS: {
|
||
|
|
readonly CONNECTION_TIMEOUT: 60000;
|
||
|
|
readonly SOCKET_TIMEOUT: 300000;
|
||
|
|
readonly COMMAND_TIMEOUT: 30000;
|
||
|
|
readonly MAX_CONNECTIONS: 5;
|
||
|
|
readonly MAX_MESSAGES: 100;
|
||
|
|
readonly PORT_SMTP: 25;
|
||
|
|
readonly PORT_SUBMISSION: 587;
|
||
|
|
readonly PORT_SMTPS: 465;
|
||
|
|
readonly RETRY_ATTEMPTS: 3;
|
||
|
|
readonly RETRY_DELAY: 1000;
|
||
|
|
readonly POOL_IDLE_TIMEOUT: 30000;
|
||
|
|
};
|
||
|
|
/**
|
||
|
|
* Error types for classification
|
||
|
|
*/
|
||
|
|
export declare enum SmtpErrorType {
|
||
|
|
CONNECTION_ERROR = "CONNECTION_ERROR",
|
||
|
|
AUTHENTICATION_ERROR = "AUTHENTICATION_ERROR",
|
||
|
|
PROTOCOL_ERROR = "PROTOCOL_ERROR",
|
||
|
|
TIMEOUT_ERROR = "TIMEOUT_ERROR",
|
||
|
|
TLS_ERROR = "TLS_ERROR",
|
||
|
|
SYNTAX_ERROR = "SYNTAX_ERROR",
|
||
|
|
MAILBOX_ERROR = "MAILBOX_ERROR",
|
||
|
|
QUOTA_ERROR = "QUOTA_ERROR",
|
||
|
|
UNKNOWN_ERROR = "UNKNOWN_ERROR"
|
||
|
|
}
|
||
|
|
/**
|
||
|
|
* Regular expressions for parsing
|
||
|
|
*/
|
||
|
|
export declare const REGEX_PATTERNS: {
|
||
|
|
readonly EMAIL_ADDRESS: RegExp;
|
||
|
|
readonly RESPONSE_CODE: RegExp;
|
||
|
|
readonly ENHANCED_STATUS: RegExp;
|
||
|
|
readonly AUTH_CAPABILITIES: RegExp;
|
||
|
|
readonly SIZE_EXTENSION: RegExp;
|
||
|
|
};
|
||
|
|
/**
|
||
|
|
* Line endings and separators
|
||
|
|
*/
|
||
|
|
export declare const LINE_ENDINGS: {
|
||
|
|
readonly CRLF: "\r\n";
|
||
|
|
readonly LF: "\n";
|
||
|
|
readonly CR: "\r";
|
||
|
|
};
|
||
|
|
/**
|
||
|
|
* Connection states for internal use
|
||
|
|
*/
|
||
|
|
export declare const CONNECTION_STATES: {
|
||
|
|
readonly DISCONNECTED: "disconnected";
|
||
|
|
readonly CONNECTING: "connecting";
|
||
|
|
readonly CONNECTED: "connected";
|
||
|
|
readonly AUTHENTICATED: "authenticated";
|
||
|
|
readonly READY: "ready";
|
||
|
|
readonly BUSY: "busy";
|
||
|
|
readonly CLOSING: "closing";
|
||
|
|
readonly ERROR: "error";
|
||
|
|
};
|