This commit is contained in:
2025-05-21 00:12:49 +00:00
parent 5c85188183
commit b1890f59ee
27 changed files with 2096 additions and 705 deletions

View File

@ -1,7 +1,7 @@
import * as plugins from '../../plugins.js';
import { logger } from '../../logger.js';
import { SecurityLogger, SecurityLogLevel, SecurityEventType } from '../../security/index.js';
import type { MtaService } from '../delivery/classes.mta.js';
// MtaService reference removed
import type { Email } from '../core/classes.email.js';
import type { IDnsVerificationResult } from '../routing/classes.dnsmanager.js';
@ -63,10 +63,11 @@ export interface DmarcResult {
* Class for verifying and enforcing DMARC policies
*/
export class DmarcVerifier {
private mtaRef: MtaService;
// DNS Manager reference for verifying records
private dnsManager?: any;
constructor(mtaRefArg: MtaService) {
this.mtaRef = mtaRefArg;
constructor(dnsManager?: any) {
this.dnsManager = dnsManager;
}
/**
@ -301,7 +302,9 @@ export class DmarcVerifier {
);
// Lookup DMARC record
const dmarcVerificationResult = await this.mtaRef.dnsManager.verifyDmarcRecord(fromDomain);
const dmarcVerificationResult = this.dnsManager ?
await this.dnsManager.verifyDmarcRecord(fromDomain) :
{ found: false, valid: false, error: 'DNS Manager not available' };
// If DMARC record exists and is valid
if (dmarcVerificationResult.found && dmarcVerificationResult.valid) {