71 lines
2.1 KiB
TypeScript
71 lines
2.1 KiB
TypeScript
import * as plugins from '../../plugins.js';
|
|
import * as paths from '../../paths.js';
|
|
import type { SzPlatformService } from '../../classes.platformservice.js';
|
|
|
|
/**
|
|
* Configures MTA storage settings for the platform service
|
|
* @param platformService Reference to the platform service
|
|
* @param options Configuration options containing storage paths
|
|
*/
|
|
export function configureMtaStorage(platformService: SzPlatformService, options: any): void {
|
|
// Extract the receivedEmailsPath if available
|
|
if (options?.emailPortConfig?.receivedEmailsPath) {
|
|
const receivedEmailsPath = options.emailPortConfig.receivedEmailsPath;
|
|
|
|
// Ensure the directory exists
|
|
plugins.smartfile.fs.ensureDirSync(receivedEmailsPath);
|
|
|
|
// Apply configuration to MTA service if available
|
|
if (platformService.mtaService) {
|
|
platformService.mtaService.configure({
|
|
storagePath: receivedEmailsPath
|
|
});
|
|
|
|
console.log(`Configured MTA to store received emails to: ${receivedEmailsPath}`);
|
|
}
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Configure MTA service with port and storage settings
|
|
* @param platformService Reference to the platform service
|
|
* @param config Configuration settings for MTA
|
|
*/
|
|
export function configureMtaService(
|
|
platformService: SzPlatformService,
|
|
config: {
|
|
port?: number;
|
|
host?: string;
|
|
secure?: boolean;
|
|
storagePath?: string;
|
|
}
|
|
): boolean {
|
|
if (!platformService?.mtaService) {
|
|
console.error('MTA service not available in platform service');
|
|
return false;
|
|
}
|
|
|
|
// Configure MTA with the provided port
|
|
const mtaConfig = {
|
|
port: config.port, // Use the port provided by the config
|
|
host: config.host || 'localhost',
|
|
secure: config.secure || false,
|
|
storagePath: config.storagePath
|
|
};
|
|
|
|
// Configure the MTA service
|
|
platformService.mtaService.configure(mtaConfig);
|
|
|
|
console.log(`Configured MTA service on port ${mtaConfig.port}`);
|
|
|
|
// Set up storage path if provided
|
|
if (config.storagePath) {
|
|
configureMtaStorage(platformService, {
|
|
emailPortConfig: {
|
|
receivedEmailsPath: config.storagePath
|
|
}
|
|
});
|
|
}
|
|
|
|
return true;
|
|
} |