aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGuilhem Moulin <guilhem.moulin@fripost.org>2013-01-18 21:05:05 +0100
committerGuilhem Moulin <guilhem.moulin@fripost.org>2013-01-18 21:07:07 +0100
commitbbf7a4b561414d43bedde682c9f7b041c6de88ad (patch)
tree6cf07611b0cfeca6c2297792347b916a6c0ff5ef
parent58bf9c43bf20c060a9e0623cb9f032b63889b384 (diff)
Amavis attributes and templates.
-rw-r--r--css/style.css20
-rw-r--r--default.in2
-rw-r--r--template/edit-user.html111
-rw-r--r--templates/add-alias.html (renamed from template/add-alias.html)0
-rw-r--r--templates/add-list.html (renamed from template/add-list.html)0
-rw-r--r--templates/add-user.html (renamed from template/add-user.html)0
-rw-r--r--templates/edit-alias.html (renamed from template/edit-alias.html)0
-rw-r--r--templates/edit-domain.html (renamed from template/edit-domain.html)0
-rw-r--r--templates/edit-list.html (renamed from template/edit-list.html)0
-rw-r--r--templates/edit-user.html329
-rw-r--r--templates/error.html (renamed from template/error.html)0
-rw-r--r--templates/error_http.html (renamed from template/error_http.html)0
-rw-r--r--templates/list-domains.html (renamed from template/list-domains.html)0
-rw-r--r--templates/list-locals.html (renamed from template/list-locals.html)0
-rw-r--r--templates/login.html (renamed from template/login.html)0
15 files changed, 348 insertions, 114 deletions
diff --git a/css/style.css b/css/style.css
index 1021403..a9090e5 100644
--- a/css/style.css
+++ b/css/style.css
@@ -22,7 +22,7 @@ body {
h1, h2, h3 {
margin: 15pt auto 10pt auto;
}
-span.domain, span.email, span.alias, span.user, span.list {
+span.domain, span.email, span.alias, span.user, span.list, span.code {
font-family: Inconsolata, "Lucida Console", "Droid Sans Mono", Cousine, monospace;
}
.errorhttp {
@@ -43,7 +43,7 @@ form.loginform {
width: 300px;
background: #F5F5F5;
}
-table.loginform {
+table.loginform, table.antispam {
margin:0 auto 5pt auto;
border-collapse:collapse;
}
@@ -58,6 +58,22 @@ td.label {
text-align: right;
vertical-align: top;
}
+table.antispam td.label {
+ text-align: justify;
+ vertical-align: middle;
+ width: 65%;
+}
+table.antispam td {
+ text-align: left;
+ padding: 0 0 0 15pt;
+ width: 35%;
+ font-size: 10pt;
+}
+div.antispam {
+ font-size: 10pt;
+ margin:1.5em auto 0 auto;
+ width: 95%;
+}
/* Header */
diff --git a/default.in b/default.in
index 3a84d8a..8be3517 100644
--- a/default.in
+++ b/default.in
@@ -5,7 +5,7 @@
# Directory for templates
-tmpl_path = ./template/
+tmpl_path = ./templates/
# Session configuration
diff --git a/template/edit-user.html b/template/edit-user.html
deleted file mode 100644
index 7b61a51..0000000
--- a/template/edit-user.html
+++ /dev/null
@@ -1,111 +0,0 @@
-<!DOCTYPE html>
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
- <head>
- <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
- <title>Edit user <TMPL_VAR NAME=user>@<TMPL_VAR NAME=domain></title>
- <link href="/css/style.css" media="all" rel="stylesheet" type="text/css" />
- </head>
- <body>
- <div id="header">
- <div class="left column">
- <a href="../../">Root</a> /
- <a href="../"><TMPL_VAR NAME=domain></a> /
- <TMPL_VAR NAME=user> /
- </div>
- <div class="right column">
- Logged as <a href="<TMPL_VAR NAME=userURI>/?a=edit"
- ><TMPL_VAR NAME=user_localpart>@<TMPL_VAR NAME=user_domainpart></a>
- | <a href="../../?a=logout">Log out</a>
- </div>
- <br/>
- </div>
- <hr/>
-
- <div id="content">
- <h1>Edit user <span class="user"><TMPL_VAR NAME=user>@<TMPL_VAR NAME=domain></span></h1>
-
-
- <TMPL_IF NAME=newChanges>
- <TMPL_IF NAME=error>
- <div class="fail">Error: <TMPL_VAR NAME=error></div>
- <TMPL_ELSE>
- <div class="success">Your changes have succesfully been submitted.</div>
- </TMPL_IF>
- <TMPL_ELSE>
- <br/>
- </TMPL_IF>
-
- <br/>
-
- <form class="editform" name="editform" method="post" action="?">
- <div class="editform">
- <input type="hidden" name="a" value="edit" />
-
- <h4 class="label" id="status">Status</h4>
- <select name="isactive">
- <option value="1" <TMPL_IF NAME=isactive>selected="selected"</TMPL_IF>>Active</option>
- <option value="0" <TMPL_UNLESS NAME=isactive>selected="selected"</TMPL_UNLESS>>Inactive</option>
- </select>
- <div class="help">
- <b>Warning</b>: emails are <i>not</i> delivered to inactive entries.
- </div>
-
- <hr/>
-
- <h4 class="label" id="password">Change password</h4>
-
- <table class="loginform">
- <tr>
- <td class="label">Current password</td>
- <td><input type="password" name="oldpw" size="20" /></td>
- </tr>
- <tr>
- <td class="label">New password</td>
- <td><input type="password" name="newpw" size="20" /></td>
- </tr>
- <tr>
- <td class="label">Repeat new password</td>
- <td><input type="password" name="newpw2" size="20" /></td>
- </tr>
- </table>
-
- <div class="help">
- <i>Note</i>:
- You need to enter your
- (<span class="user"><TMPL_VAR NAME=user_localpart>@<TMPL_VAR NAME=user_domainpart></span>'s)
- current password first.
- Leave these fields empty if you do not want to change the
- password.
- </div>
-
- <hr/>
-
- <h4 class="label" id="description">Description</h4>
- <textarea name="description" cols="50" rows="5" ><TMPL_VAR NAME=description></textarea>
- <div class="help">
- An optional description. (HTML tags are allowed.)
- </div>
-
- <hr/>
-
- <h4 class="label" id="forward">Mail forwarding</h4>
- <textarea name="forwards" cols="50" rows="5" ><TMPL_VAR NAME=forwards></textarea>
- <div class="help">
- An optional list of destinations (one e-mail address per line) that
- will receive mail for
- <span class="email"><TMPL_VAR NAME=user>@<TMPL_VAR NAME=domain></span>.
- (<i>Note</i>: When not empty, this list cancels delivery to
- this user, so do not forget to list
- <span class="email"><TMPL_VAR NAME=user>@<TMPL_VAR NAME=domain></span>
- here as well if you want this mailbox to be delivered too.)
- </div>
- <hr/>
- <br/>
-
- <input type="submit" name="cancel" value="Cancel" />
- <input type="submit" name="submit" value="Submit" />
- </div>
- </form>
- </div>
- </body>
-</html>
diff --git a/template/add-alias.html b/templates/add-alias.html
index 3283a59..3283a59 100644
--- a/template/add-alias.html
+++ b/templates/add-alias.html
diff --git a/template/add-list.html b/templates/add-list.html
index 59ca226..59ca226 100644
--- a/template/add-list.html
+++ b/templates/add-list.html
diff --git a/template/add-user.html b/templates/add-user.html
index e46c16a..e46c16a 100644
--- a/template/add-user.html
+++ b/templates/add-user.html
diff --git a/template/edit-alias.html b/templates/edit-alias.html
index 60a7d2b..60a7d2b 100644
--- a/template/edit-alias.html
+++ b/templates/edit-alias.html
diff --git a/template/edit-domain.html b/templates/edit-domain.html
index dbbdf3c..dbbdf3c 100644
--- a/template/edit-domain.html
+++ b/templates/edit-domain.html
diff --git a/template/edit-list.html b/templates/edit-list.html
index 6eeae7c..6eeae7c 100644
--- a/template/edit-list.html
+++ b/templates/edit-list.html
diff --git a/templates/edit-user.html b/templates/edit-user.html
new file mode 100644
index 0000000..1b22d73
--- /dev/null
+++ b/templates/edit-user.html
@@ -0,0 +1,329 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
+ <title>Edit user <TMPL_VAR NAME=user>@<TMPL_VAR NAME=domain></title>
+ <link href="/css/style.css" media="all" rel="stylesheet" type="text/css" />
+ </head>
+ <body>
+ <div id="header">
+ <div class="left column">
+ <a href="../../">Root</a> /
+ <a href="../"><TMPL_VAR NAME=domain></a> /
+ <TMPL_VAR NAME=user> /
+ </div>
+ <div class="right column">
+ Logged as <a href="<TMPL_VAR NAME=userURI>/?a=edit"
+ ><TMPL_VAR NAME=user_localpart>@<TMPL_VAR NAME=user_domainpart></a>
+ | <a href="../../?a=logout">Log out</a>
+ </div>
+ <br/>
+ </div>
+ <hr/>
+
+ <div id="content">
+ <h1>Edit user <span class="user"><TMPL_VAR NAME=user>@<TMPL_VAR NAME=domain></span></h1>
+
+
+ <TMPL_IF NAME=newChanges>
+ <TMPL_IF NAME=error>
+ <div class="fail">Error: <TMPL_VAR NAME=error></div>
+ <TMPL_ELSE>
+ <div class="success">Your changes have succesfully been submitted.</div>
+ </TMPL_IF>
+ <TMPL_ELSE>
+ <br/>
+ </TMPL_IF>
+
+ <br/>
+
+ <form class="editform" name="editform" method="post" action="?">
+ <div class="editform">
+ <input type="hidden" name="a" value="edit" />
+
+ <h4 class="label" id="status">Status</h4>
+ <select name="isactive">
+ <option value="1" <TMPL_IF NAME=isactive>selected="selected"</TMPL_IF>>Active</option>
+ <option value="0" <TMPL_UNLESS NAME=isactive>selected="selected"</TMPL_UNLESS>>Inactive</option>
+ </select>
+ <div class="help">
+ <b>Warning</b>: emails are <i>not</i> delivered to inactive entries.
+ </div>
+
+ <hr/>
+
+ <h4 class="label" id="password">Change password</h4>
+
+ <table class="loginform">
+ <tr>
+ <td class="label">Current password</td>
+ <td><input type="password" name="oldpw" size="20" /></td>
+ </tr>
+ <tr>
+ <td class="label">New password</td>
+ <td><input type="password" name="newpw" size="20" /></td>
+ </tr>
+ <tr>
+ <td class="label">Repeat new password</td>
+ <td><input type="password" name="newpw2" size="20" /></td>
+ </tr>
+ </table>
+
+ <div class="help">
+ <i>Note</i>:
+ You need to enter your
+ (<span class="user"><TMPL_VAR NAME=user_localpart>@<TMPL_VAR NAME=user_domainpart></span>'s)
+ current password first.
+ Leave these fields empty if you do not want to change the
+ password.
+ </div>
+
+ <hr/>
+
+ <h4 class="label" id="description">Description</h4>
+ <textarea name="description" cols="50" rows="5" ><TMPL_VAR NAME=description></textarea>
+ <div class="help">
+ An optional description. (HTML tags are allowed.)
+ </div>
+
+ <hr/>
+
+ <h4 class="label" id="forward">Mail forwarding</h4>
+ <textarea name="forwards" cols="50" rows="5" ><TMPL_VAR NAME=forwards></textarea>
+ <div class="help">
+ An optional list of destinations (one e-mail address per line) that
+ will receive mail for
+ <span class="email"><TMPL_VAR NAME=user>@<TMPL_VAR NAME=domain></span>.
+ (<i>Note</i>: When not empty, this list cancels delivery to
+ this user, so do not forget to list
+ <span class="email"><TMPL_VAR NAME=user>@<TMPL_VAR NAME=domain></span>
+ here as well if you want this mailbox to be delivered too.)
+ </div>
+
+ <hr/>
+
+ <h4 class="label" id="antispam">Anti-Spam and message filter</h4>
+
+ <table class="antispam">
+ <tr>
+ <td rowspan="5" class="label">Deliver messages marked as
+ follows, maybe ignoring a discard action below.
+ <i>Note</i>: Checks are done if a recipient requires it,
+ so you will be keeping training your filter unless you also
+ choose to bypass checks.</td>
+ <td><input type="checkbox" name="amavisVirusLover" /> Virus</td>
+ </tr>
+ <tr>
+ <td><input type="checkbox" name="amavisSpamLover" /> Spam</td>
+ </tr>
+ <tr>
+ <td><input type="checkbox" name="amavisBannedFilesLover" /> Banned files</td>
+ </tr>
+ <tr>
+ <td><input type="checkbox" name="amavisBadHeaderLover" /> Bad headers</td>
+ </tr>
+ <tr>
+ <td><input type="checkbox" name="amavisUncheckedLover" /> Could not check</td>
+ </tr>
+ </table>
+
+ <br/>
+ <table class="antispam">
+ <tr>
+ <td rowspan="4" class="label">Message checks to bypass.
+ <i>Note</i>: Each check is run as soon as a recipient requires
+ it, so you also need to check the above if you want to to
+ guarantee the delivery for multi-recipient messages.</td>
+ <td><input type="checkbox" name="amavisBypassVirusChecks" /> Virus</td>
+ </tr>
+ <tr>
+ <td><input type="checkbox" name="amavisBypassSpamChecks" /> Spam</td>
+ </tr>
+ <tr>
+ <td><input type="checkbox" name="amavisBypassBannedChecks" /> Banned files</td>
+ </tr>
+ <tr>
+ <td><input type="checkbox" name="amavisBypassHeaderChecks" /> Bad headers</td>
+ </tr>
+ </table>
+
+ <br/>
+ <table class="antispam">
+ <tr>
+ <td class="label">Score at which header tags are added.</td>
+ <td><input type="text" name="amavisSpamTagLevel" size="10" /> Default: 0.0</td>
+ </tr>
+ <tr>
+ <td class="label">Subject to prepend when score exceeds the above.</td>
+ <td><input type="text" name="amavisSpamSubjectTag" size="20" /></td>
+ </tr>
+ <tr>
+ <td class="label">Score at which a message is marked as spam.</td>
+ <td><input type="text" name="amavisSpamTag2Level" size="10" /> Default: 5.0</td>
+ </tr>
+ <tr>
+ <td class="label">Subject to prepend when score exceeds the above.</td>
+ <td><input type="text" name="amavisSpamSubjectTag2" size="20" /></td>
+ </tr>
+ <tr>
+ <td class="label">Score at which a message is marked as extreme spam.</td>
+ <td><input type="text" name="amavisSpamTag3Level" size="10" /> Default: 5.0</td>
+ </tr>
+ <tr>
+ <td class="label">Subject to prepend when score exceeds the above.</td>
+ <td><input type="text" name="amavisSpamSubjectTag3" size="20" /></td>
+ </tr>
+ <tr>
+ <td class="label">Score at which a message bounces back to the
+ sender.</td>
+ <td><input type="text" name="amavisSpamKillLevel" size="10" /> Default: 5.0</td>
+ </tr>
+ <tr>
+ <td class="label">Score at which a message is quarantined.</td>
+ <td><input type="text" name="amavisSpamDsnCutoffLevel" size="10" /> Default: 5.0</td>
+ </tr>
+ <tr>
+ <td class="label">Score at which a message is discarded.</td>
+ <td><input type="text" name="amavisSpamQuarantineCutoffLevel" size="10" /> Default: 5.0</td>
+ </tr>
+ </table>
+ <div class="help"><i>Notes</i>: Although SpamAssassin's scores range from 0 to
+ 1000, with a well-trained filter it is unlikely that a clean message
+ scores more than 5.
+
+ It only makes sense (and is therefore required) to keep the above
+ scores ordered when defined.
+ Also, bouncing spam is probably useless, since spammers are
+ often using forged e-mails; To disable bouncing, set the
+ quarantine level to the bounce level.
+
+ The following macros can be used in the subject prefixes:
+ <span class="code">_SCORE_</span> (spam level),
+ <span class="code">_REQD_</span> (minimum spam level),
+ <span class="code">_YESNO_</span> (marqued as spam Yes/No),
+ <span class="code">_YESNOCAPS_</span> (marqued as spam YES/NO),
+ <span class="code">_HOSTNAME_</span> (hostname),
+ <span class="code">_DATE_</span> (RFC 2822 date),
+ <span class="code">_U_</span> (ISO-8601 UTC timestamp),
+ <span class="code">_LOGID_</span> (internal log ID), and
+ <span class="code">_MAILID_</span> (message ID).
+ </div>
+
+ <br/>
+ <table class="antispam">
+ <tr>
+ <td rowspan="3" class="label">Warn the recipients (you, and
+ possibly others) for messages marked as follows. This can be
+ useful for quarantined and/or discarded messages.</td>
+ <td><input type="checkbox" name="amavisWarnVirusRecip" /> Virus</td>
+ </tr>
+ <tr>
+ <td><input type="checkbox" name="amavisWarnBannedRecip" /> Banned files</td>
+ </tr>
+ <tr>
+ <td><input type="checkbox" name="amavisWarnBadHeaderRecip" /> Bad headers</td>
+ </tr>
+ </table>
+
+ <br/>
+ <table class="antispam">
+ <tr>
+ <td rowspan="7" class="label">An email address where to
+ forward (aka. quarantine)
+ messages, depending on how they have been classified.
+ (<i>Note</i>: The last item is independent of the others, so
+ a message may be forwarded to two different destinations.)</td>
+ <td><input type="text" name="amavisVirusQuarantineTo" size="10" /> Virus</td>
+ </tr>
+ <tr>
+ <td><input type="text" name="amavisSpamQuarantineTo" size="10" /> Spam</td>
+ </tr>
+ <tr>
+ <td><input type="text" name="amavisBannedQuarantineTo" size="10" /> Banned files</td>
+ </tr>
+ <tr>
+ <td><input type="text" name="amavisBadHeaderQuarantineTo" size="10" /> Bad headers</td>
+ </tr>
+ <tr>
+ <td><input type="text" name="amavisUncheckedQuarantineTo" size="10" /> Could not check</td>
+ </tr>
+ <tr>
+ <td><input type="text" name="amavisCleanQuarantineTo" size="10" /> Clean</td>
+ </tr>
+ <tr>
+ <td><input type="text" name="amavisArchiveQuarantineTo" size="10" /> <i>All messages</i></td>
+ </tr>
+ </table>
+
+ <br/>
+ <table class="antispam">
+ <tr>
+ <td rowspan="4" class="label">Address extension to be added to
+ the recipient(s), depending on how the message has been
+ classified.
+ (Adding the extension <span class="email">virus</span> to
+ the recipient <span class="email"><TMPL_VAR NAME=user>@<TMPL_VAR NAME=domain></span>
+ will result into viruses being sent to
+ <span class="email"><TMPL_VAR NAME=user>+virus@<TMPL_VAR NAME=domain></span>.)</td>
+ <td><input type="text" name="amavisAddrExtensionVirus" size="10" /> Virus</td>
+ </tr>
+ <tr>
+ <td><input type="text" name="amavisAddrExtensionSpam" size="10" /> Spam</td>
+ </tr>
+ <tr>
+ <td><input type="text" name="amavisAddrExtensionBanned" size="10" /> Banned files</td>
+ </tr>
+ <tr>
+ <td><input type="text" name="amavisAddrExtensionBadHeader" size="10" /> Bad header</td>
+ </tr>
+ </table>
+
+ <br/>
+ <table class="antispam">
+ <tr>
+ <td rowspan="5" class="label">An email address to which
+ notifications (reports) are sent, depending on how
+ messages are classified.</td>
+ <td><input type="text" name="amavisVirusAdmin" size="10" /> Virus</td>
+ </tr>
+ <tr>
+ <td><input type="text" name="amavisNewVirusAdmin" size="10" /> New virus</td>
+ </tr>
+ <tr>
+ <td><input type="text" name="amavisSpamAdmin" size="10" /> Spam</td>
+ </tr>
+ <tr>
+ <td><input type="text" name="amavisBannedAdmin" size="10" /> Banned files</td>
+ </tr>
+ <tr>
+ <td><input type="text" name="amavisBadHeaderAdmin" size="10" /> Bad header</td>
+ </tr>
+ </table>
+
+ <div class="antispam">E-mail addresses (one per line) to
+ whitelist. Messages from the listed sender will bypass any
+ check.
+ (<i>Note</i>: Senders can always be forged!)
+ <textarea name="amavisWhitelistSender" cols="50" rows="10" ></textarea>
+ </div>
+
+ <div class="antispam">E-mail addresses (one per line) to
+ blacklist. Messages from the listed sender will always be marked
+ as spam.
+ (<i>Note</i>: Senders can always be forged!)
+ <textarea name="amavisBlacklistSender" cols="50" rows="10" ></textarea>
+ </div>
+
+ <div class="antispam">A list (one per line) of filename extensions
+ (e.g., <span class="code">.exe</span>) to ban.
+ <textarea name="amavisBannedRuleNames" cols="50" rows="10" ></textarea>
+ </div>
+
+ <input type="submit" name="cancel" value="Cancel" />
+ <input type="submit" name="submit" value="Submit" />
+ </div>
+
+ </form>
+ </div>
+ </body>
+</html>
diff --git a/template/error.html b/templates/error.html
index 5c1d0f1..5c1d0f1 100644
--- a/template/error.html
+++ b/templates/error.html
diff --git a/template/error_http.html b/templates/error_http.html
index c6ab50a..c6ab50a 100644
--- a/template/error_http.html
+++ b/templates/error_http.html
diff --git a/template/list-domains.html b/templates/list-domains.html
index 5ebdd05..5ebdd05 100644
--- a/template/list-domains.html
+++ b/templates/list-domains.html
diff --git a/template/list-locals.html b/templates/list-locals.html
index 4f21ee8..4f21ee8 100644
--- a/template/list-locals.html
+++ b/templates/list-locals.html
diff --git a/template/login.html b/templates/login.html
index ed10d20..ed10d20 100644
--- a/template/login.html
+++ b/templates/login.html