fix(mail): align queue, outbound hostname, and DKIM selector behavior across the mail server APIs

This commit is contained in:
2026-04-14 12:17:50 +00:00
parent 04e73c366c
commit 65ecd94540
15 changed files with 387 additions and 147 deletions

View File

@@ -18,7 +18,7 @@ export interface IQueueItem {
id: string;
processingMode: EmailProcessingMode;
processingResult: any;
route: IEmailRoute;
route?: IEmailRoute;
status: QueueItemStatus;
attempts: number;
nextAttempt: Date;
@@ -237,7 +237,7 @@ export class UnifiedDeliveryQueue extends EventEmitter {
* @param mode Processing mode
* @param route Email route
*/
public async enqueue(processingResult: any, mode: EmailProcessingMode, route: IEmailRoute): Promise<string> {
public async enqueue(processingResult: any, mode: EmailProcessingMode, route?: IEmailRoute): Promise<string> {
// Check if queue is full
if (this.queue.size >= this.options.maxQueueSize) {
throw new Error('Queue is full');
@@ -284,6 +284,10 @@ export class UnifiedDeliveryQueue extends EventEmitter {
public getItem(id: string): IQueueItem | undefined {
return this.queue.get(id);
}
public listItems(): IQueueItem[] {
return Array.from(this.queue.values()).map((item) => ({ ...item }));
}
/**
* Mark an item as being processed
@@ -657,4 +661,4 @@ export class UnifiedDeliveryQueue extends EventEmitter {
this.emit('shutdown');
logger.log('info', 'UnifiedDeliveryQueue shut down successfully');
}
}
}