bridge = $bridge; $this->dmarcPolicyChecker = $dmarcPolicyChecker; } /** * Get all Authorized Sender Domains * * Note: This includes both verified and unverified domains */ public function getAllSenderDomains(): array { $records = $this->bridge->getAuthorizedSenderDomains(); $domains = array_keys($records); return $domains; } /** * Get all Verified Sender Domains */ public function getVerifiedSenderDomains(): array { $records = $this->bridge->getAuthorizedSenderDomains(); $verifiedDomains = []; foreach ($records as $key => $value) { [$domainKey1, $domainKey2, $secretRecord] = $value; if ( $domainKey1['status'] === self::DOMAIN_VERIFICATION_STATUS_VALID && $domainKey2['status'] === self::DOMAIN_VERIFICATION_STATUS_VALID && $secretRecord['status'] === self::DOMAIN_VERIFICATION_STATUS_VALID ) { $verifiedDomains[] = $key; } } return $verifiedDomains; } /** * Check Domain DMARC Policy * * returns `true` if domain has Retricted policy e.g policy === reject or quarantine * otherwise returns `false` */ public function isDomainDmarcRetricted(string $domain): bool { $result = $this->dmarcPolicyChecker->getDomainDmarcPolicy($domain); return $result !== DmarcPolicyChecker::POLICY_NONE; } }