@@ -11,7 +11,10 @@ <h4 class="panel-title">Domain SPF & DMARC Information: <strong>{{artifact.data}
1111 < dt > Base Domain:</ dt >
1212 < dd > {{content.DomainMailSPFDMARC.base_domain}}</ dd >
1313 < dt > DNSSEC:</ dt >
14- < dd > {{content.DomainMailSPFDMARC.dnssec}}</ dd >
14+ < dd >
15+ < span ng-if ="content.DomainMailSPFDMARC.dnssec "> ✓</ span >
16+ < span ng-if ="!content.DomainMailSPFDMARC.dnssec "> ✗</ span >
17+ </ dd >
1518 </ dl >
1619 </ div >
1720 < div class ="col-md-6 ">
@@ -21,37 +24,119 @@ <h4 class="panel-title">Domain SPF & DMARC Information: <strong>{{artifact.data}
2124 </ dl >
2225 < dl class ="dl-horizontal " ng-if ="content.DomainMailSPFDMARC.ns.warnings.length ">
2326 < dt > NS Warnings:</ dt >
24- < dd > < pre > {{content.DomainMailSPFDMARC.ns.warnings.join('\n')}}</ pre > </ dd >
25- </ dl >
26- < dl class ="dl-horizontal " ng-if ="content.DomainMailSPFDMARC.mx.hosts.length ">
27- < dt > MX Hosts:</ dt >
28- < dd > {{content.DomainMailSPFDMARC.mx.hosts.join(', ')}}</ dd >
29- </ dl >
30- < dl class ="dl-horizontal " ng-if ="content.DomainMailSPFDMARC.mx.warnings.length ">
31- < dt > MX Warnings:</ dt >
32- < dd > < pre > {{content.DomainMailSPFDMARC.mx.warnings.join('\n')}}</ pre > </ dd >
27+ < dd >
28+ < pre > {{content.DomainMailSPFDMARC.ns.warnings.join('\n')}}</ pre >
29+ </ dd >
3330 </ dl >
3431 </ div >
3532 </ div >
3633
34+ < dl class ="dl-horizontal " ng-if ="content.DomainMailSPFDMARC.mx.hosts.length ">
35+ < dt > MX Hosts:</ dt >
36+ < dd >
37+ < table class ="table table-striped ">
38+ < thead >
39+ < tr >
40+ < th > Preference</ th >
41+ < th > Hostname</ th >
42+ < th > Addresses</ th >
43+ < th > DNSSEC</ th >
44+ < th > TLS</ th >
45+ < th > STARTTLS</ th >
46+ </ tr >
47+ </ thead >
48+ < tbody >
49+ < tr ng-repeat ="mx in content.DomainMailSPFDMARC.mx.hosts ">
50+ < td > {{mx.preference}}</ td >
51+ < td > {{mx.hostname}}</ td >
52+ < td > {{mx.addresses.join(', ')}}</ td >
53+ < td >
54+ < span ng-if ="mx.dnssec "> ✓</ span >
55+ < span ng-if ="!mx.dnssec "> ✗</ span >
56+ </ td >
57+ < td >
58+ < span ng-if ="mx.tls "> ✓</ span >
59+ < span ng-if ="!mx.tls "> ✗</ span >
60+ </ td >
61+ < td >
62+ < span ng-if ="mx.starttls "> ✓</ span >
63+ < span ng-if ="!mx.starttls "> ✗</ span >
64+ </ td >
65+ </ tr >
66+ </ tbody >
67+ </ table >
68+ </ dd >
69+ </ dl >
70+ < dl class ="dl-horizontal " ng-if ="content.DomainMailSPFDMARC.mx.warnings.length ">
71+ < dt > MX Warnings:</ dt >
72+ < dd >
73+ < pre > {{content.DomainMailSPFDMARC.mx.warnings.join('\n')}}</ pre >
74+ </ dd >
75+ </ dl >
76+
3777 < hr >
3878
3979 < h4 class ="text-info "> SPF Record</ h4 >
4080 < dl class ="dl-horizontal ">
4181 < dt > Record:</ dt >
42- < dd > {{content.DomainMailSPFDMARC.spf.record}}</ dd >
82+ < dd > < code > {{content.DomainMailSPFDMARC.spf.record}}</ code > </ dd >
4383 < dt > Valid:</ dt >
4484 < dd > {{content.DomainMailSPFDMARC.spf.valid}}</ dd >
4585 < dt > Error:</ dt >
4686 < dd > {{content.DomainMailSPFDMARC.spf.error || 'None'}}</ dd >
87+
88+ < dt > DNS Lookups:</ dt >
89+ < dd >
90+ {{content.DomainMailSPFDMARC.spf.dns_lookups}}
91+ < span ng-if ="content.DomainMailSPFDMARC.spf.dns_lookups > 10 " class ="text-danger "> ⚠ Too many
92+ lookups</ span >
93+ </ dd >
94+ < dt > Void Lookups:</ dt >
95+ < dd > {{content.DomainMailSPFDMARC.spf.dns_void_lookups}}</ dd >
96+
4797 </ dl >
4898
99+ < div ng-if ="content.DomainMailSPFDMARC.spf.parsed ">
100+ < h5 style ="cursor: pointer; " ng-click ="spfDetailsVisible = !spfDetailsVisible ">
101+ < span class ="text-info "> SPF Parsed Tree</ span >
102+ < span class ="pull-right ">
103+ < span ng-if ="!spfDetailsVisible "> [+]</ span >
104+ < span ng-if ="spfDetailsVisible "> [−]</ span >
105+ </ span >
106+ </ h5 >
107+ < div ng-show ="spfDetailsVisible " style ="margin-top:10px; ">
108+ < table class ="table table-bordered table-condensed ">
109+ < thead >
110+ < tr >
111+ < th > Mechanism</ th >
112+ < th > Value</ th >
113+ </ tr >
114+ </ thead >
115+ < tbody >
116+ < tr ng-repeat ="entry in content.DomainMailSPFDMARC.spf.parsed.pass ">
117+ < td > pass ({{entry.mechanism}})</ td >
118+ < td > {{entry.value}}</ td >
119+ </ tr >
120+ < tr ng-repeat ="entry in content.DomainMailSPFDMARC.spf.parsed.include ">
121+ < td > include</ td >
122+ < td > {{entry.domain}}</ td >
123+ </ tr >
124+ < tr ng-if ="content.DomainMailSPFDMARC.spf.parsed.all ">
125+ < td > all</ td >
126+ < td > {{content.DomainMailSPFDMARC.spf.parsed.all}}</ td >
127+ </ tr >
128+ </ tbody >
129+ </ table >
130+ </ div >
131+ </ div >
132+
133+
49134 < hr >
50135
51136 < h4 class ="text-info "> DMARC Record</ h4 >
52137 < dl class ="dl-horizontal ">
53138 < dt > Record:</ dt >
54- < dd > {{content.DomainMailSPFDMARC.dmarc.record}}</ dd >
139+ < dd > < code > {{content.DomainMailSPFDMARC.dmarc.record}}</ code > </ dd >
55140 < dt > Valid:</ dt >
56141 < dd > {{content.DomainMailSPFDMARC.dmarc.valid}}</ dd >
57142 < dt > Error:</ dt >
@@ -61,7 +146,9 @@ <h4 class="text-info">DMARC Record</h4>
61146 </ dl >
62147 < dl class ="dl-horizontal " ng-if ="content.DomainMailSPFDMARC.dmarc.warnings.length ">
63148 < dt > Warnings:</ dt >
64- < dd > < pre > {{content.DomainMailSPFDMARC.dmarc.warnings.join('\n')}}</ pre > </ dd >
149+ < dd >
150+ < pre > {{content.DomainMailSPFDMARC.dmarc.warnings.join('\n')}}</ pre >
151+ </ dd >
65152 </ dl >
66153
67154 < hr >
@@ -78,11 +165,59 @@ <h4 class="text-info">DMARC Tags</h4>
78165 < tbody >
79166 < tr ng-repeat ="(tag, value) in content.DomainMailSPFDMARC.dmarc.tags ">
80167 < td > {{tag}}</ td >
81- < td > {{value.value}}</ td >
168+ < td >
169+ < span ng-if ="tag === 'p' " ng-class ="{
170+ 'text-success': value.value === 'reject',
171+ 'text-warning': value.value === 'quarantine',
172+ 'text-danger': value.value === 'none'
173+ } "> {{value.value}}</ span >
174+ < span ng-if ="tag !== 'p' "> {{value.value}}</ span >
175+ </ td >
82176 < td > {{value.explicit ? 'Yes' : 'No'}}</ td >
83177 </ tr >
84178 </ tbody >
85179 </ table >
180+
181+ < hr >
182+
183+ < h4 class ="text-info "> MTA-STS</ h4 >
184+ < dl class ="dl-horizontal ">
185+ < dt > Valid:</ dt >
186+ < dd > {{content.DomainMailSPFDMARC.mta_sts.valid ? 'Yes' : 'No'}}</ dd >
187+ < dt > Error:</ dt >
188+ < dd > {{content.DomainMailSPFDMARC.mta_sts.error || 'None'}}</ dd >
189+ </ dl >
190+
191+ < hr >
192+
193+ < h4 class ="text-info "> SMTP TLS Reporting</ h4 >
194+ < dl class ="dl-horizontal ">
195+ < dt > Valid:</ dt >
196+ < dd > {{content.DomainMailSPFDMARC.smtp_tls_reporting.valid ? 'Yes' : 'No'}}</ dd >
197+ < dt > Error:</ dt >
198+ < dd > {{content.DomainMailSPFDMARC.smtp_tls_reporting.error || 'None'}}</ dd >
199+ </ dl >
200+
201+ < hr >
202+
203+ < h4 class ="text-info "> BIMI</ h4 >
204+ < dl class ="dl-horizontal ">
205+ < dt > Record:</ dt >
206+ < dd > < code > {{content.DomainMailSPFDMARC.bimi.record}}</ code > </ dd >
207+ < dt > Valid:</ dt >
208+ < dd > {{content.DomainMailSPFDMARC.bimi.valid ? 'Yes' : 'No'}}</ dd >
209+ < dt > Selector:</ dt >
210+ < dd > {{content.DomainMailSPFDMARC.bimi.selector}}</ dd >
211+ < dt > Image Error:</ dt >
212+ < dd > {{content.DomainMailSPFDMARC.bimi.image.error || 'None'}}</ dd >
213+ </ dl >
214+ < dl class ="dl-horizontal " ng-if ="content.DomainMailSPFDMARC.bimi.warnings.length ">
215+ < dt > Warnings:</ dt >
216+ < dd >
217+ < pre > {{content.DomainMailSPFDMARC.bimi.warnings.join('\n')}}</ pre >
218+ </ dd >
219+ </ dl >
220+
86221 </ div >
87222</ div >
88223
@@ -93,4 +228,4 @@ <h4 class="text-info">DMARC Tags</h4>
93228 < div class ="panel-body ">
94229 < p > {{content.errorMessage}}</ p >
95230 </ div >
96- </ div >
231+ </ div >
0 commit comments