update
This commit is contained in:
@ -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';
|
||||
|
||||
@ -69,11 +69,12 @@ const MAX_SPF_LOOKUPS = 10;
|
||||
* Class for verifying SPF records
|
||||
*/
|
||||
export class SpfVerifier {
|
||||
private mtaRef: MtaService;
|
||||
// DNS Manager reference for verifying records
|
||||
private dnsManager?: any;
|
||||
private lookupCount: number = 0;
|
||||
|
||||
constructor(mtaRefArg: MtaService) {
|
||||
this.mtaRef = mtaRefArg;
|
||||
constructor(dnsManager?: any) {
|
||||
this.dnsManager = dnsManager;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -221,7 +222,9 @@ export class SpfVerifier {
|
||||
|
||||
try {
|
||||
// Look up SPF record
|
||||
const spfVerificationResult = await this.mtaRef.dnsManager.verifySpfRecord(domain);
|
||||
const spfVerificationResult = this.dnsManager ?
|
||||
await this.dnsManager.verifySpfRecord(domain) :
|
||||
{ found: false, valid: false, error: 'DNS Manager not available' };
|
||||
|
||||
if (!spfVerificationResult.found) {
|
||||
return {
|
||||
@ -341,7 +344,9 @@ export class SpfVerifier {
|
||||
|
||||
// Handle redirect
|
||||
const redirectDomain = spfRecord.modifiers.redirect;
|
||||
const redirectResult = await this.mtaRef.dnsManager.verifySpfRecord(redirectDomain);
|
||||
const redirectResult = this.dnsManager ?
|
||||
await this.dnsManager.verifySpfRecord(redirectDomain) :
|
||||
{ found: false, valid: false, error: 'DNS Manager not available' };
|
||||
|
||||
if (!redirectResult.found || !redirectResult.valid) {
|
||||
return {
|
||||
@ -455,7 +460,9 @@ export class SpfVerifier {
|
||||
|
||||
// Check included domain's SPF record
|
||||
const includeDomain = mechanism.value;
|
||||
const includeResult = await this.mtaRef.dnsManager.verifySpfRecord(includeDomain);
|
||||
const includeResult = this.dnsManager ?
|
||||
await this.dnsManager.verifySpfRecord(includeDomain) :
|
||||
{ found: false, valid: false, error: 'DNS Manager not available' };
|
||||
|
||||
if (!includeResult.found || !includeResult.valid) {
|
||||
continue; // Skip this mechanism
|
||||
|
Reference in New Issue
Block a user