Fix Domain Alignment align issue when error messages
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
parent
2172603ad5
commit
447a666ae7
1 changed files with 107 additions and 111 deletions
|
|
@ -58,6 +58,8 @@
|
||||||
{/if}
|
{/if}
|
||||||
|
|
||||||
{#if headerAnalysis.domain_alignment}
|
{#if headerAnalysis.domain_alignment}
|
||||||
|
{@const spfStrictAligned = headerAnalysis.domain_alignment.from_domain === headerAnalysis.domain_alignment.return_path_domain}
|
||||||
|
{@const spfRelaxedAligned = headerAnalysis.domain_alignment.from_org_domain === headerAnalysis.domain_alignment.return_path_org_domain}
|
||||||
<div class="card mb-3" id="domain-alignment">
|
<div class="card mb-3" id="domain-alignment">
|
||||||
<div class="card-header">
|
<div class="card-header">
|
||||||
<h5 class="mb-0">
|
<h5 class="mb-0">
|
||||||
|
|
@ -69,19 +71,30 @@
|
||||||
<p class="card-text small text-muted">
|
<p class="card-text small text-muted">
|
||||||
Domain alignment ensures that the visible "From" domain matches the domain used for authentication (Return-Path or DKIM signature). Proper alignment is crucial for DMARC compliance, regardless of the policy. It helps prevent email spoofing by verifying that the sender domain is consistent across all authentication layers. Only one of the following lines needs to pass.
|
Domain alignment ensures that the visible "From" domain matches the domain used for authentication (Return-Path or DKIM signature). Proper alignment is crucial for DMARC compliance, regardless of the policy. It helps prevent email spoofing by verifying that the sender domain is consistent across all authentication layers. Only one of the following lines needs to pass.
|
||||||
</p>
|
</p>
|
||||||
|
{#if headerAnalysis.domain_alignment.issues && headerAnalysis.domain_alignment.issues.length > 0}
|
||||||
|
<div class="mt-3">
|
||||||
|
{#each headerAnalysis.domain_alignment.issues as issue}
|
||||||
|
<div class="alert alert-{headerAnalysis.domain_alignment.relaxed_aligned ? 'info' : 'warning'} py-2 small mb-2">
|
||||||
|
<i class="bi bi-{headerAnalysis.domain_alignment.relaxed_aligned ? 'info-circle' : 'exclamation-triangle'} me-1"></i>
|
||||||
|
{issue}
|
||||||
|
</div>
|
||||||
|
{/each}
|
||||||
|
</div>
|
||||||
|
{/if}
|
||||||
</div>
|
</div>
|
||||||
<div class="list-group list-group-flush">
|
<div class="list-group list-group-flush">
|
||||||
<div class="list-group-item d-flex ps-0">
|
<div class="list-group-item d-flex ps-0">
|
||||||
<div class="d-flex align-items-center justify-content-center" style="writing-mode: vertical-rl; transform: rotate(180deg); font-size: 1.5rem; font-weight: bold; min-width: 3rem;">
|
<div class="d-flex align-items-center justify-content-center" style="writing-mode: vertical-rl; transform: rotate(180deg); font-size: 1.5rem; font-weight: bold; min-width: 3rem;">
|
||||||
SPF
|
SPF
|
||||||
</div>
|
</div>
|
||||||
|
<div class="flex-fill">
|
||||||
<div class="row flex-grow-1">
|
<div class="row flex-grow-1">
|
||||||
<div class="col-md-3">
|
<div class="col-md-3">
|
||||||
<small class="text-muted">Strict Alignment</small>
|
<small class="text-muted">Strict Alignment</small>
|
||||||
<div>
|
<div>
|
||||||
<span class="badge" class:bg-success={headerAnalysis.domain_alignment.aligned} class:bg-danger={!headerAnalysis.domain_alignment.aligned}>
|
<span class="badge" class:bg-success={spfStrictAligned} class:bg-danger={!spfStrictAligned}>
|
||||||
<i class="bi {headerAnalysis.domain_alignment.aligned ? 'bi-check-circle-fill' : 'bi-x-circle-fill'} me-1"></i>
|
<i class="bi {spfStrictAligned ? 'bi-check-circle-fill' : 'bi-x-circle-fill'} me-1"></i>
|
||||||
<strong>{headerAnalysis.domain_alignment.aligned ? 'Pass' : 'Fail'}</strong>
|
<strong>{spfStrictAligned ? 'Pass' : 'Fail'}</strong>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="small text-muted mt-1">Exact domain match</div>
|
<div class="small text-muted mt-1">Exact domain match</div>
|
||||||
|
|
@ -89,9 +102,9 @@
|
||||||
<div class="col-md-3">
|
<div class="col-md-3">
|
||||||
<small class="text-muted">Relaxed Alignment</small>
|
<small class="text-muted">Relaxed Alignment</small>
|
||||||
<div>
|
<div>
|
||||||
<span class="badge" class:bg-success={headerAnalysis.domain_alignment.relaxed_aligned} class:bg-danger={!headerAnalysis.domain_alignment.relaxed_aligned}>
|
<span class="badge" class:bg-success={spfRelaxedAligned} class:bg-danger={!spfRelaxedAligned}>
|
||||||
<i class="bi {headerAnalysis.domain_alignment.relaxed_aligned ? 'bi-check-circle-fill' : 'bi-x-circle-fill'} me-1"></i>
|
<i class="bi {spfRelaxedAligned ? 'bi-check-circle-fill' : 'bi-x-circle-fill'} me-1"></i>
|
||||||
<strong>{headerAnalysis.domain_alignment.relaxed_aligned ? 'Pass' : 'Fail'}</strong>
|
<strong>{spfRelaxedAligned ? 'Pass' : 'Fail'}</strong>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="small text-muted mt-1">Organizational domain match</div>
|
<div class="small text-muted mt-1">Organizational domain match</div>
|
||||||
|
|
@ -111,16 +124,6 @@
|
||||||
{/if}
|
{/if}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{#if headerAnalysis.domain_alignment.issues && headerAnalysis.domain_alignment.issues.length > 0}
|
|
||||||
<div class="mt-3">
|
|
||||||
{#each headerAnalysis.domain_alignment.issues as issue}
|
|
||||||
<div class="alert alert-{headerAnalysis.domain_alignment.relaxed_aligned ? 'info' : 'warning'} py-2 small mb-2">
|
|
||||||
<i class="bi bi-{headerAnalysis.domain_alignment.relaxed_aligned ? 'info-circle' : 'exclamation-triangle'} me-1"></i>
|
|
||||||
{issue}
|
|
||||||
</div>
|
|
||||||
{/each}
|
|
||||||
</div>
|
|
||||||
{/if}
|
|
||||||
|
|
||||||
<!-- Alignment Information based on DMARC policy -->
|
<!-- Alignment Information based on DMARC policy -->
|
||||||
{#if dmarcRecord && headerAnalysis.domain_alignment.return_path_domain && headerAnalysis.domain_alignment.return_path_domain !== headerAnalysis.domain_alignment.from_domain}
|
{#if dmarcRecord && headerAnalysis.domain_alignment.return_path_domain && headerAnalysis.domain_alignment.return_path_domain !== headerAnalysis.domain_alignment.from_domain}
|
||||||
|
|
@ -135,6 +138,7 @@
|
||||||
</div>
|
</div>
|
||||||
{/if}
|
{/if}
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
{#each headerAnalysis.domain_alignment.dkim_domains as dkim_domain}
|
{#each headerAnalysis.domain_alignment.dkim_domains as dkim_domain}
|
||||||
{@const dkim_aligned = dkim_domain.domain === headerAnalysis.domain_alignment.from_domain}
|
{@const dkim_aligned = dkim_domain.domain === headerAnalysis.domain_alignment.from_domain}
|
||||||
|
|
@ -143,6 +147,7 @@
|
||||||
<div class="d-flex align-items-center justify-content-center" style="writing-mode: vertical-rl; transform: rotate(180deg); font-size: 1.5rem; font-weight: bold; min-width: 3rem;">
|
<div class="d-flex align-items-center justify-content-center" style="writing-mode: vertical-rl; transform: rotate(180deg); font-size: 1.5rem; font-weight: bold; min-width: 3rem;">
|
||||||
DKIM
|
DKIM
|
||||||
</div>
|
</div>
|
||||||
|
<div class="flex-fill">
|
||||||
<div class="flex-fill">
|
<div class="flex-fill">
|
||||||
<div class="row flex-grow-1">
|
<div class="row flex-grow-1">
|
||||||
<div class="col-md-3">
|
<div class="col-md-3">
|
||||||
|
|
@ -180,16 +185,6 @@
|
||||||
{/if}
|
{/if}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{#if headerAnalysis.domain_alignment.issues && headerAnalysis.domain_alignment.issues.length > 0}
|
|
||||||
<div class="mt-3">
|
|
||||||
{#each headerAnalysis.domain_alignment.issues as issue}
|
|
||||||
<div class="alert alert-{headerAnalysis.domain_alignment.relaxed_aligned ? 'info' : 'warning'} py-2 small mb-2">
|
|
||||||
<i class="bi bi-{headerAnalysis.domain_alignment.relaxed_aligned ? 'info-circle' : 'exclamation-triangle'} me-1"></i>
|
|
||||||
{issue}
|
|
||||||
</div>
|
|
||||||
{/each}
|
|
||||||
</div>
|
|
||||||
{/if}
|
|
||||||
|
|
||||||
<!-- Alignment Information based on DMARC policy -->
|
<!-- Alignment Information based on DMARC policy -->
|
||||||
{#if dmarcRecord && dkim_domain.domain !== headerAnalysis.domain_alignment.from_domain}
|
{#if dmarcRecord && dkim_domain.domain !== headerAnalysis.domain_alignment.from_domain}
|
||||||
|
|
@ -207,6 +202,7 @@
|
||||||
{/if}
|
{/if}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
{/each}
|
{/each}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue