blob: 141c8237ed6ef49ad995c9fa2484b55da440bddf (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
|
{% extends "layout.html" %}
{% block title %}Report{% endblock %}
{% block content %}
<ol class="breadcrumb">
<li><a href="{{ url_for('index') }}">Index</a></li>
<li><a href="{{ url_for('feedback') }}">Feedback</a></li>
<li class="active">Report</li>
</ol>
<h1>Report</h1>
<div class="row">
<div class="col-md-7">
<h2>Report Metadata</h1>
<dl class="dl-horizontal">
<dt>Organisation Name</dt><dd>{{ feedback.rm_org_name }}</dd>
<dt>Email</dt><dd>{{ feedback.rm_email }}</dd>
<dt>Extra Contact Info</dt><dd>{{ feedback.rm_extra_contact_info }}</dd>
<dt>Report ID</dt><dd>{{ feedback.rm_report_id }}</dd>
<dt>Date Range</dt><dd>
<time>{{ feedback.rm_date_begin|isotime }}</time>
to
<time>{{ feedback.rm_date_end|isotime }}</time>
</dd>
</dl>
</div>
<div class="col-md-5">
<h2>Policy Published</h1>
<dl class="dl-horizontal">
<dt>Domain</dt><dd>{{ feedback.pp_domain }}</dd>
<dt>DKIM Alignment</dt><dd>{{ feedback.pp_adkim|alignment }}</dd>
<dt>SPF Alignment</dt><dd>{{ feedback.pp_aspf|alignment }}</dd>
<dt>Policy</dt><dd>{{ feedback.pp_p|capitalize }}</dd>
<dt>Subdomain Policy</dt><dd>{{ feedback.pp_sp|capitalize }}</dd>
</dl>
</div>
<div class="col-md-6">
<h2>Statistics</h2>
<table class="table">
<tr>
<th></th>
<th>Total</th>
<th>%</th>
</tr>
<tr>
<td>Messages</td>
<td>{{ total.records }}</td>
<td></td>
</tr>
<tr class="{{ total.none|pctclass(total.records) }}">
<td>Disposition None</td>
<td>{{ total.none }}</td>
<td>{{ (total.none / total.records * 100)|round|int }}%</td>
</tr>
<tr class="{{ total.dmarc|pctclass(total.records) }}">
<td>DKIM or SPF Pass</td>
<td>{{ total.dmarc }}</td>
<td>{{ (total.dmarc / total.records * 100)|round|int }}%</td>
</tr>
<tr class="{{ total.dkim|pctclass(total.records) }}">
<td>DKIM Pass</td>
<td>{{ total.dkim }}</td>
<td>{{ (total.dkim / total.records * 100)|round|int }}%</td>
</tr>
<tr class="{{ total.spf|pctclass(total.records) }}">
<td>SPF Pass</td>
<td>{{ total.spf }}</td>
<td>{{ (total.spf / total.records * 100)|round|int }}%</td>
</tr>
</table>
</div>
<div class="col-md-6">
<h2>Utilities</h2>
<ul>
<li>XML Export:
<a class="btn btn-default" href="{{ url_for('export', feedbackid=feedback.feedbackid) }}">View</a>
<a class="btn btn-default" href="{{ url_for('export', feedbackid=feedback.feedbackid) }}" download="{{ feedback.rm_report_id }}">Download</a>
</li>
</ul>
</div>
</div>
<div class="row">
<div class="col-md-12">
<h2>Records</h2>
<table class="table table-condensed">
<tr>
<th>Source</th>
<th>Count</th>
<th>Disposition</th>
<th>DKIM</th>
<th>SPF</th>
<th>Envelope To</th>
<th>Header From</th>
<th></th>
</tr>
{% for item in records %}
<tr>
<td>{{ item['row_source_ip']|fqdn }}</td>
<td>{{ item['row_count'] }}</td>
<td>{{ item['row_pol_disposition'] }}</td>
<td class="{{ item['row_pol_dkim']|tblclass }}">{{ item['row_pol_dkim'] }}</td>
<td class="{{ item['row_pol_spf']|tblclass }}">{{ item['row_pol_spf'] }}</td>
<td>{{ item['ids_envelope_to'] }}</td>
<td>{{ item['ids_header_from'] }}</td>
<td>
<a class="btn btn-xs" href="{{ url_for('record', recordid=item['recordid']) }}">
Record
</a>
</td>
</tr>
{% endfor %}
</table>
{% endblock %}
</div>
</div>
|