From feb97c32649dfaa7c98283423125283a53d5dd09 Mon Sep 17 00:00:00 2001
From: Horus3
Date: Sun, 17 May 2015 00:56:57 +0200
Subject: Improved UX, security and presentation.
---
handler.go | 24 +++++++++++++++++++++---
server.go | 10 +++++++---
static/css/style.css | 3 +++
views/about.html | 1 +
views/howto.html | 30 +++++++++++++++++++-----------
views/howto_de.html | 31 ++++++++++++++++++-------------
views/index.html | 7 +++----
views/index_de.html | 18 +++++++++---------
views/server.html | 7 ++++---
views/server_de.html | 4 ++--
10 files changed, 87 insertions(+), 48 deletions(-)
diff --git a/handler.go b/handler.go
index 9035f87..021a852 100644
--- a/handler.go
+++ b/handler.go
@@ -10,6 +10,7 @@ func IndexHandler(w http.ResponseWriter, r *http.Request) {
if err != nil {
log.Println("Info: ", err)
}
+ session.Values["page"] = "/"
flash := Flash{}
flash.Error = session.Flashes("error")
@@ -30,6 +31,7 @@ func RegisterHandler(w http.ResponseWriter, r *http.Request) {
if err != nil {
log.Println("Info: ", err)
}
+ session.Values["page"] = "/register"
flash := Flash{}
flash.Error = session.Flashes("error")
@@ -99,6 +101,7 @@ func AboutHandler(w http.ResponseWriter, r *http.Request) {
if err != nil {
log.Println("Info: ", err)
}
+ session.Values["page"] = "/about"
flash := Flash{}
flash.Error = session.Flashes("error")
@@ -119,6 +122,7 @@ func ServerHandler(w http.ResponseWriter, r *http.Request) {
if err != nil {
log.Println("Info: ", err)
}
+ session.Values["page"] = "/server"
flash := Flash{}
flash.Error = session.Flashes("error")
@@ -139,6 +143,7 @@ func HowtoHandler(w http.ResponseWriter, r *http.Request) {
if err != nil {
log.Println("Info: ", err)
}
+ session.Values["page"] = "/howto"
flash := Flash{}
flash.Error = session.Flashes("error")
@@ -159,6 +164,7 @@ func UserHandler(w http.ResponseWriter, r *http.Request) {
if err != nil {
log.Println("Info: ", err)
}
+ session.Values["page"] = "/user"
flash := Flash{}
flash.Error = session.Flashes("error")
@@ -179,6 +185,7 @@ func PasswordHandler(w http.ResponseWriter, r *http.Request) {
if err != nil {
log.Println("Info: ", err)
}
+ session.Values["page"] = "/password"
flash := Flash{}
flash.Error = session.Flashes("error")
@@ -239,7 +246,11 @@ func ChangePasswordHandler(w http.ResponseWriter, r *http.Request) {
}
func ChangeLocaleHandler(w http.ResponseWriter, r *http.Request) {
- err := r.ParseForm()
+ session, err := store.Get(r, "_SID")
+ if err != nil {
+ log.Println("Info: ", err)
+ }
+ err = r.ParseForm()
if err != nil {
log.Panic(err)
http.Error(w, err.Error(), http.StatusInternalServerError)
@@ -248,11 +259,18 @@ func ChangeLocaleHandler(w http.ResponseWriter, r *http.Request) {
locale := r.URL.Query().Get("to")
+ var page string
+ if session.Values["page"] == "" {
+ page = "/"
+ } else {
+ page = session.Values["page"].(string)
+ }
+
if len(locale) == 0 {
- http.Redirect(w, r, "/", 302)
+ http.Redirect(w, r, page, 302)
return
}
cookie := http.Cookie{Name: "lang", Value: locale}
http.SetCookie(w, &cookie)
- http.Redirect(w, r, "/", 302)
+ http.Redirect(w, r, page, 302)
}
diff --git a/server.go b/server.go
index 387b5b6..975b549 100644
--- a/server.go
+++ b/server.go
@@ -25,9 +25,13 @@ func CreateNewEntry(email, password string) error {
// Checks for correct DNS
if !vD.ValidateDomainMX(server) {
- if !vD.ValidateDomain(server) {
- return errors.New("Neither the MX record nor the domain itself point to this server. Please fix your DNS.")
- }
+ return errors.New("Wrong DNS setup. The MX record does not point to this server. Please fix your DNS.")
+
+ // We require the correct MX entry, not just a A record.
+ //
+ //if !vD.ValidateDomain(server) {
+ // return errors.New("Neither the MX record nor the domain itself point to this server. Please fix your DNS.")
+ //}
}
if !vD.DomainExists() {
diff --git a/static/css/style.css b/static/css/style.css
index e28ece7..4504e38 100644
--- a/static/css/style.css
+++ b/static/css/style.css
@@ -67,3 +67,6 @@ body {
.lp {
margin-top: 25px;
}
+.italic {
+ font-style: italic;
+}
diff --git a/views/about.html b/views/about.html
index 8992d8c..0e75f60 100644
--- a/views/about.html
+++ b/views/about.html
@@ -53,6 +53,7 @@
Debian - Operating System
+
THERE IS ABSOLUT NO WARRANTY IN ANY WAY, BE IT UPTIME, BACKUP OR ABUSE. THE USER IS RESPONSIBLE FOR HIS OWN DOING. diff --git a/views/howto.html b/views/howto.html index ae8d9fe..03bb4f7 100644 --- a/views/howto.html +++ b/views/howto.html @@ -8,24 +8,18 @@
To create a new mail adress follow and fill out this link. +
To create a new mail address follow and fill out this link.
- You can use email.iamfabulous.de or user.iamfabulous.de as a base domain, so e.g. 'post@email.iamfabulous.de' or 'tidyupmyroom@user.iamfabulous.de' are valid entries.
+ You can use email.iamfabulous.de or user.iamfabulous.de as a base domain, so e.g. 'post@email.iamfabulous.de' or 'tidyupmyroom@user.iamfabulous.de' are valid entries.
Try it out, if the mail is already taken it will prompt you with more details.
It is possible to use other domains as well. If you own one, we can do the mail hosting for you.
-
- The requirements are a valid MX entry in your DNS. MX means 'mail exchange' and is a special resource record which points the responsible mail server. The correct entry is mx.iamfabulous.de.
-
The easiest way is to use our webmail interface. You can find it here . +
The easiest way to login is using our webmail interface with your browser. You can find it here .
- Log in with your full mail adress and your password.
+ Your login name is your full mail address.
If you want to use your own client, see here for connection details.
@@ -37,6 +31,20 @@
Follow this link here .
It is possible to use other domains as well. If you own one, we can do the mail hosting for you. +
+
+ The requirements are a valid MX entry in your DNS. MX means 'mail exchange' and is a special resource record which points the responsible mail server. The correct entry is mx.iamfabulous.de.
+
+ For hassle-free mail delivery a valid SPF entry is mandatory. A valid TXT record may look like
+
+ v=spf1 mxipv4:62.210.138.105 -all.
+
+ We also recommend to sign your mails with DKIM. To set up DKIM send me a notice, because it's not possible to automate this procedure. +
Um eine neue E-Mail Adresse auszufüllen folgen Sie diesem link. +
Um eine neue E-Mail Adresse zu erstellen folgen Sie diesem Link.
- Sie können email.iamfabulous.de oder user.iamfabulous.de als Basis nehmen, zum Beispiel 'post@email.iamfabulous.de' oder 'tidyupmyroom@user.iamfabulous.de' sind gültige Einträge.
+ Es steht u.a. email.iamfabulous.de oder user.iamfabulous.de als Domain zur Verfügung, zum Beispiel 'post@email.iamfabulous.de' oder 'tidyupmyroom@user.iamfabulous.de' sind gültige Adressen.
- Probieren Sie es aus. Wenn die Adresse schon vergeben ist, wird Ihnen eine Fehlermeldung mit mehr Informationen gezeigt.
-
Es ist möglich Libremail auch mit anderen Domains zu verwenden. Wenn Sie eine besitzen, dann können wir das E-Mail hosting für sie übernehmen.
-
- Verlangt wird ein gültiger MX Eintrag in Ihrem DNS. MX bedeutet 'mail exchange' und ist ein spezieller Eintrag welcher auf den verantwortlichen Mail Server zeigt. Der korrekte Eintrag lautet mx.iamfabulous.de.
+ Probieren Sie es aus. Wenn die Adresse schon vergeben ist, wird Ihnen eine Meldung mit mehr Informationen angezeigt.
Am einfachsten ist es, wenn Sie unser Webmail benutzen. Sie finden es hier . +
Am einfachsten ist es, wenn Sie sich über Ihren Browser einloggen. Sie finden unser Webmail Angebot hier .
- Benutzen Sie ihre volle E-Mail Adresse und ihr Passwort als Login.
+ Benutzen Sie Ihre volle E-Mail Adresse als Loginname.
- Wenn Sie Ihren eigenen Klienten (Smartphone oder Thunderbird etc.) benutzen wollen, können Sie hier für Details zur Verbindung sehen.
+ Wenn Sie Ihren eigenen Klienten (Smartphone oder Thunderbird etc.) benutzen wollen, können Sie hier Details zur Verbindungsherstellung einsehen.
- Sie können einfach und bequem Ihr Passwort durch diese Webseite ändern. Sie benötigen dafür noch ihr altes Passwort.
+ Sie können einfach und bequem Ihr Passwort über diese Webseite ändern. Sie benötigen dafür Ihr altes Passwort.
Folgen Sie dafür einfach diesem Link.
Es ist möglich Libremail auch mit anderen Domains zu verwenden. Wenn Sie eine eigene Domain besitzen, dann können wir uns um die E-Mail Geschichte kümmern. +
+
+ Verlangt wird ein gültiger MX Eintrag in Ihrem DNS. MX bedeutet 'Mail Exchange' und ist ein spezieller Eintrag welcher auf den verantwortlichen Mail Server zeigt. Der korrekte Eintrag lautet mx.iamfabulous.de.
+
+ Für eine korrekte Mail Zustellung ist außerdem mindestens ein gültiger SPF Record im DNS notwendig. Ein gültiger Eintrag könnte als TXT Record so aussehen.
v=spf1 mxipv4:62.210.138.105 -all
+
Wir empfehlen außerdem die Signierung der E-Mails mit DKIM. Sollten Sie einen DKIM Eintrag wünschen, setzen Sie sich mit mir in Kontakt, da dieser Vorgang nicht automatisiert werden kann. +
We do our best to keep up-to-date with the latest technologies and not only suggest, but rather enforce encryption on every step.
- +You own a domain? We will gladly do the mail hosting for you. Set up your DNS and get everything out of the box.
- Please read the docs for more info.
You want to send and recieve e-mails with your own domain? We will gladly do the mail hosting for you. Follow our instructions and we will do the rest. +
Nur noch 10 Sekunden bis zur neuen Mail Adresse.
- Wähle Sie eine freie Adresse und registrieren Sie sich.
- Trauen Sie sich! Es ist frei und wir beißen nicht.
Wir geben unser bestes um immer aktuell zu sein und die neuesten Technologien zu benutzen. Deswegen empfehlen wir nicht nur Verschlüsselung, sondern erzwingen sie wo immer es geht. -
+Wir benutzen die aktuellesten Technologien und Methoden. Deswegen empfehlen wir nicht nur eine für den Nutzer transparente Verschlüsselung der Daten, sondern erzwingen sie wann und wo immer es geht. +
Sie besitzen eine Domain? Wir kümmerns uns gerne um Ihre E-Mail setup. Setzen Sie ihr DNS und bekommen Sie alles auf einmal.
- +Sie verfügen über eine eigene Domain? Und Sie möchten E-Mails darüber versenden und empfangen können? Folgen Sie unserer Anleitung und wir kümmern uns um den Rest.
+Libremail ist das Ergebnis meiner Bemühungen, als ich einen stressfreien E-Mail Anbieter ohne großes Brimborium drumherum gesucht habe. Inzwischen vertrauen einige Leute darauf, dass ihre E-Mails zugestellt werden. Wir hosten sogar Mailing Listen auf diesem Server. - Wenn Sie interessiert sind, dann können Sie meinen Blog folgen.
- +Libremail ist das Ergebnis meiner Bemühungen, als ich einen stressfreien E-Mail Anbieter ohne großes Brimborium drumherum gesucht habe. Inzwischen vertrauen einige Leute darauf, dass ihre E-Mails zugestellt werden. Wir betreiben sogar Mailing Listen auf diesem Server. + Wenn Sie interessiert sind, folgen Sie meinem Blog. Ich arbeite noch an anderen interessanten Projekten.
++ Please note: Unfortunalety roundcube does not support GPG encryption yet. +
Bitte beachten Sie: Leider unterstützt Roundcube noch keine GPG Verschlüsselung.