6 <meta name=
"viewport" content=
"width=device-width, initial-scale=1">
7 <meta name=
"robots" content=
"noindex">
8 <title>Dmarc reports
</title>
9 <link rel=
"stylesheet" href=
"default.css">
13 <div id=
"app" style=
"width: 100%">
14 <div class=
"optionblock">
16 <span class='optionlabel'
>Anonymize
</span>
17 <label><input type=
"radio" :
value=
"false" v-model=
"anonymous" v-on:
click=
"toggleAnonymous()"> no
</label>
18 <label><input type=
"radio" :
value=
"true" v-model=
"anonymous" v-on:
click=
"toggleAnonymous()"> yes
</label>
20 <template v-if=
"info">
22 <span class='optionlabel'
>Hide all-green lines:
</span>
23 <label><input type=
"radio" :
value=
"false" v-model=
"filterGreen"> no
</label>
24 <label><input type=
"radio" :
value=
"true" v-model=
"filterGreen"> yes
</label>
27 <span class='optionlabel'
>Sort order:
</span>
28 <label><input type=
"radio" :
value=
"false" v-model=
"reverse"> ascending
</label>
29 <label><input type=
"radio" :
value=
"true" v-model=
"reverse"> descending
</label>
32 <span class='optionlabel'
>Domain(s):
</span>
33 <select v-model=
"filterDomain">
34 <option selected=
"selected" :
value=
"null">[all]
</option>
35 <option v-for=
"domain in info.domains" :
value=
"domain">{{ domain }}
</option>
39 <span class='optionlabel'
>Organisation(s):
</span>
40 <select v-model=
"filterOrg">
41 <option selected=
"selected" :
value=
"null">[all]
</option>
42 <option v-for=
"org in info.orgs" :
value=
"org">{{ org }}
</option>
46 <span class='optionlabel'
>Time:
</span>
47 <select v-model=
"filterDate">
48 <option selected=
"selected" :
value=
"null">[all]
</option>
49 <option v-for=
"date in info.dates" :
value=
"date">{{ date }}
</option>
55 <h1 class='main'
>DMARC Reports
</h1>
56 <p v-if=
"!info" class=
"warninginfo">
57 No information could be fetched. If in non-anonymous mode you need to be logged-in
59 <table class='reportlist'
v-if=
"summaries">
66 <th>Reporting Organization
</th>
72 <template v-for=
"summary in filtered()">
73 <tr v-on:
click=
"toggle(summary)" class=
"summaryrow"
74 v-bind:
class=
"[{ selected: selectedSummary && summary.serial === selectedSummary.serial }]">
75 <td class='right'
><span :
class=
"'circle_' + getColor(summary)"></span></td>
76 <td class='right'
>{{ printDate(summary.mindate) }}
</td>
77 <td class='right'
>{{ printDate(summary.maxdate) }}
</td>
78 <td class='center'
>{{ summary.domain }}
</td>
79 <td class='center'
>{{ summary.org }}
</td>
80 <td class='center'
>{{ summary.reportid }}
</td>
81 <td class='center'
>{{ summary.rcount }}
</td>
83 <tr v-if=
"selectedSummary && summary.serial === selectedSummary.serial">
84 <td colspan=
"6" class=
"reportcell">
85 <div class='center reportdesc'
>
86 <p>Policies: adkim={{ summary.policy_adkim }}, aspf={{ summary.policy_aspf }}, p={{ summary.policy_none }}, sp={{ summary.policy_sp }}, pct={{ summary.policy_pct }}
</p>
88 <table v-if=
"summary.details" class='reportdata'
>
93 <th>Message Count
</th>
97 <th>Raw DKIM Result
</th>
99 <th>Raw SPF Result
</th>
103 <tr v-for=
"record in summary.details.rptrecord" :class='getColor(record)'
>
104 <td>{{ record.ip }}
</td>
105 <td>{{ record.host }}
</td>
106 <td>{{ record.rcount }}
</td>
107 <td>{{ record.disposition }}
</td>
108 <td>{{ record.reason }}
</td>
109 <td>{{ record.dkimdomain }}
</td>
110 <td>{{ record.dkimresult }}
</td>
111 <td>{{ record.spfdomain }}
</td>
112 <td>{{ record.spfresult }}
</td>
124 <script src=
"https://cdn.jsdelivr.net/npm/vue@2.6.11"></script>
125 <script src=
"app.js"></script>