From 7c01b77445ddd949af4b819340d6168f27e81a6f Mon Sep 17 00:00:00 2001
From: Alex <$(pass /github/email)>
Date: Wed, 26 Feb 2025 21:44:24 +0100
Subject: [PATCH] backend: moved to correct plaintext mail parsing
---
internal/services/email_service.go | 28 +++
templates/email/mail_change_password.tmpl | 167 ++++++++++++++++++
templates/email/mail_change_password.txt.tmpl | 13 ++
templates/email/mail_contact_form.tmpl | 11 --
templates/email/mail_contact_form.txt.tmpl | 11 ++
templates/email/mail_registration.tmpl | 29 ---
templates/email/mail_registration.txt.tmpl | 29 +++
templates/email/mail_verification.tmpl | 24 ---
templates/email/mail_verification.txt.tmpl | 24 +++
templates/email/mail_welcome.tmpl | 56 ------
templates/email/mail_welcome.txt.tmpl | 56 ++++++
11 files changed, 328 insertions(+), 120 deletions(-)
create mode 100644 templates/email/mail_change_password.tmpl
create mode 100644 templates/email/mail_change_password.txt.tmpl
create mode 100644 templates/email/mail_contact_form.txt.tmpl
create mode 100644 templates/email/mail_registration.txt.tmpl
create mode 100644 templates/email/mail_verification.txt.tmpl
create mode 100644 templates/email/mail_welcome.txt.tmpl
diff --git a/internal/services/email_service.go b/internal/services/email_service.go
index 5cdcf85..51b14e7 100644
--- a/internal/services/email_service.go
+++ b/internal/services/email_service.go
@@ -80,6 +80,34 @@ func (s *EmailService) SendVerificationEmail(user *models.User, token *string) e
return err
}
return s.SendEmail(user.Email, subject, body, "")
+func (s *EmailService) SendChangePasswordEmail(user *models.User, token *string) error {
+ // Prepare data to be injected into the template
+ data := struct {
+ FirstName string
+ LastName string
+ Token string
+ BASEURL string
+ UserID uint
+ }{
+ FirstName: user.FirstName,
+ LastName: user.LastName,
+ Token: *token,
+ BASEURL: config.Site.BaseURL,
+ UserID: user.ID,
+ }
+
+ subject := constants.MailChangePasswordSubject
+ htmlBody, err := ParseTemplate("mail_change_password.tmpl", data)
+ if err != nil {
+ logger.Error.Print("Couldn't parse password mail")
+ return err
+ }
+ plainBody, err := ParseTemplate("mail_change_password.txt.tmpl", data)
+ if err != nil {
+ logger.Error.Print("Couldn't parse password mail")
+ return err
+ }
+ return s.SendEmail(user.Email, subject, htmlBody, plainBody, "")
}
diff --git a/templates/email/mail_change_password.tmpl b/templates/email/mail_change_password.tmpl
new file mode 100644
index 0000000..18d0bb6
--- /dev/null
+++ b/templates/email/mail_change_password.tmpl
@@ -0,0 +1,167 @@
+
+
+
+
+
+
+
+
+
+ 
+
+
+ Moin {{.FirstName}} {{.LastName}} 👋,
+
+
+ wir haben die Aufforderung erhalten, Dein Passwort zu ändern. Solltest Du
+ dies nicht angefordert haben, ignoriere diese E-Mail einfach.
+
+
+
+
+
+ Ansonsten kannst Du Dein Passwort jetzt ändern, indem Du hier auf den Link klickst:
+
+
+
+ Alternativ kannst Du auch diesen Link in Deinem Browser öffnen:
+
+
+ {{.BASEURL}}/auth/password/change/{{.UserID}}?token={{.Token}}
+
+
+ Mit Freundlichen Grüßen,
+
+
+ Der Vorstand
+
+
+ 
+
+ |
+
+
+
+
+
+
diff --git a/templates/email/mail_change_password.txt.tmpl b/templates/email/mail_change_password.txt.tmpl
new file mode 100644
index 0000000..98b75b3
--- /dev/null
+++ b/templates/email/mail_change_password.txt.tmpl
@@ -0,0 +1,13 @@
+Moin {{.FirstName}} {{.LastName}} 👋,
+
+wir haben die Aufforderung erhalten, Dein Passwort zu ändern. Solltest Du
+dies nicht angefordert haben, ignoriere diese E-Mail einfach.
+
+Ansonsten kannst Du Dein Passwort jetzt ändern, indem Du hier auf den Link klickst:
+
+Passwort ändern:
+{{.BASEURL}}/auth/password/change/{{.UserID}}?token={{.Token}}
+
+Mit Freundlichen Grüßen,
+
+Der Vorstand
diff --git a/templates/email/mail_contact_form.tmpl b/templates/email/mail_contact_form.tmpl
index c22dd1f..a4955e6 100644
--- a/templates/email/mail_contact_form.tmpl
+++ b/templates/email/mail_contact_form.tmpl
@@ -1,14 +1,3 @@
-Moin Du Vorstand 👋,
-
- Eine neue Kontaktanfrage!
- {{.Name}} hat geschrieben
-
- Hier ist die Nachricht:
-
-{{.Message}}
-
- Mit freundlichen Grüßen,
- Dein untertänigster Wolkenrechner
diff --git a/templates/email/mail_contact_form.txt.tmpl b/templates/email/mail_contact_form.txt.tmpl
new file mode 100644
index 0000000..b85efb6
--- /dev/null
+++ b/templates/email/mail_contact_form.txt.tmpl
@@ -0,0 +1,11 @@
+Moin Du Vorstand 👋,
+
+ Eine neue Kontaktanfrage!
+ {{.Name}} hat geschrieben
+
+ Hier ist die Nachricht:
+
+{{.Message}}
+
+ Mit freundlichen Grüßen,
+ Dein untertänigster Wolkenrechner
diff --git a/templates/email/mail_registration.tmpl b/templates/email/mail_registration.tmpl
index cc01731..f1ed216 100644
--- a/templates/email/mail_registration.tmpl
+++ b/templates/email/mail_registration.tmpl
@@ -1,32 +1,3 @@
-Moin Du Vorstand 👋,
-
-Ein neues Mitglied!!!
{{.FirstName}} {{.LastName}} hat sich registriert.
-
-Hier sind die Daten:
----------------------
-
-Das gebuchtes Modell:
- Name: {{.MembershipModel}}
- Preis/Monat: {{.MembershipFee}}
- Preis/h: {{.RentalFee}}
-
-Persönliche Daten:
- {{if .Company}}
- Firma: {{.Company}}
- {{end}}
- Name: {{.FirstName}} {{.LastName}}
- Mitgliedsnr: {{.MembershipID}}
-
- Adresse: {{.Address}},
- {{.ZipCode}} {{.City}}
- Geburtsdatum: {{.DateOfBirth}}
- Email: {{.Email}}
- Telefon: {{.Phone}}
- IBAN: {{.IBAN}}
-
-Mit freundlichen Grüßen,
-
- Dein untertänigster Wolkenrechner
diff --git a/templates/email/mail_registration.txt.tmpl b/templates/email/mail_registration.txt.tmpl
new file mode 100644
index 0000000..4710d17
--- /dev/null
+++ b/templates/email/mail_registration.txt.tmpl
@@ -0,0 +1,29 @@
+Moin Du Vorstand 👋,
+
+Ein neues Mitglied!!!
{{.FirstName}} {{.LastName}} hat sich registriert.
+
+Hier sind die Daten:
+---------------------
+
+Das gebuchtes Modell:
+ Name: {{.MembershipModel}}
+ Preis/Monat: {{.MembershipFee}}
+ Preis/h: {{.RentalFee}}
+
+Persönliche Daten:
+ {{if .Company}}
+ Firma: {{.Company}}
+ {{end}}
+ Name: {{.FirstName}} {{.LastName}}
+ Mitgliedsnr: {{.MembershipID}}
+
+ Adresse: {{.Address}},
+ {{.ZipCode}} {{.City}}
+ Geburtsdatum: {{.DateOfBirth}}
+ Email: {{.Email}}
+ Telefon: {{.Phone}}
+ IBAN: {{.IBAN}}
+
+Mit freundlichen Grüßen,
+
+ Dein untertänigster Wolkenrechner
diff --git a/templates/email/mail_verification.tmpl b/templates/email/mail_verification.tmpl
index 1cc432b..c9036f7 100644
--- a/templates/email/mail_verification.tmpl
+++ b/templates/email/mail_verification.tmpl
@@ -1,27 +1,3 @@
-Moin {{.FirstName}} {{.LastName}} 👋,
-
-herzlich willkommen beim Dörpsmobil Hasloh e.V.! Vielen Dank für
-Ihre Registrierung und Ihre Unterstützung unseres Projekts.
-
-Um die Registrierung abschließen zu können bestätigen Sie bitte
-noch Ihre Emailadresse indem Sie hier klicken:
-
-E-Mail Adresse bestätigen
-
- {{.BASEURL}}/users/verify?token={{.Token}}
-
-Nachdem wir Ihre E-Mail Adresse bestätigen konnten, schicken wir
-Ihnen alle weiteren Informationen zu. Wir freuen uns auf die
-gemeinsame Zeit mit Ihnen!
-
-Sollte es Probleme geben, möchten wir uns gerne jetzt schon
-dafür entschuldigen, wenden Sie sich gerne an uns, wir werden
-uns sofort darum kümmern, versprochen! Antworten Sie einfach auf
-diese E-Mail.
-
-Mit Freundlichen Grüßen,
-
-Der Vorstand
diff --git a/templates/email/mail_verification.txt.tmpl b/templates/email/mail_verification.txt.tmpl
new file mode 100644
index 0000000..ba0153b
--- /dev/null
+++ b/templates/email/mail_verification.txt.tmpl
@@ -0,0 +1,24 @@
+Moin {{.FirstName}} {{.LastName}} 👋,
+
+herzlich willkommen beim Dörpsmobil Hasloh e.V.! Vielen Dank für
+Ihre Registrierung und Ihre Unterstützung unseres Projekts.
+
+Um die Registrierung abschließen zu können bestätigen Sie bitte
+noch Ihre Emailadresse indem Sie hier klicken:
+
+E-Mail Adresse bestätigen
+
+ {{.BASEURL}}/users/verify?token={{.Token}}
+
+Nachdem wir Ihre E-Mail Adresse bestätigen konnten, schicken wir
+Ihnen alle weiteren Informationen zu. Wir freuen uns auf die
+gemeinsame Zeit mit Ihnen!
+
+Sollte es Probleme geben, möchten wir uns gerne jetzt schon
+dafür entschuldigen, wenden Sie sich gerne an uns, wir werden
+uns sofort darum kümmern, versprochen! Antworten Sie einfach auf
+diese E-Mail.
+
+Mit Freundlichen Grüßen,
+
+Der Vorstand
diff --git a/templates/email/mail_welcome.tmpl b/templates/email/mail_welcome.tmpl
index 2e495eb..a2ed074 100644
--- a/templates/email/mail_welcome.tmpl
+++ b/templates/email/mail_welcome.tmpl
@@ -1,59 +1,3 @@
-Moin {{.FirstName}} {{if .Company}}({{.Company}}){{end}}👋,
-
-wir freuen uns sehr, dich als neues Mitglied bei Carsharing
-Hasloh begrüßen zu dürfen! Herzlichen Glückwunsch zur
-erfolgreichen E-Mail-Verifikation und willkommen in unserem
-Verein!
-Hier einige wichtige Informationen für dich:
- Deine Mitgliedsnummer: {{.MembershipID}}
-
- Dein gebuchtes Modell:
- Name: {{.MembershipModel}}
- Preis/Monat: {{.MembershipFee}}
- Preis/h: {{.RentalFee}}
-
- Mitgliedsbeitrag: Solange wir noch kein
- Fahrzeug im Betrieb haben, zahlst Du sinnvollerweise auch
- keinen Mitgliedsbeitrag. Es ist zur Zeit der 1.1.2025 als
- Startdatum geplant.
-
- Führerscheinverifikation: Weitere Informationen zur Verifikation
- deines Führerscheins folgen in Kürze. Du musst nichts weiter tun,
- wir werden uns bei dir melden, sobald es notwendig ist.
-
-Moqo App:
- Wir werden die Moqo App nutzen,
- um das Fahrzeug ausleihen zu können. Wenn Du schon mal einen
- ersten Eindruck von dem Buchungsvorgang haben möchtest,
- schaue Dir gerne dieses kurze Video an:
-Moqo App Nutzung
-
- https://www.youtube.com/shorts/ZMKUX0uyOps
-Dörpsmobil:
- Wir sind nicht alleine sondern Mitglied in einem Schleswig-Holstein
- weiten Netz an gemeinnützigen Carsharing Anbietern. Für mehr
- Informationen zu diesem Netzwerk haben wir auch ein Video vorbereitet:
-Dörpsmobil SH
-
- https://www.youtube.com/watch?v=NSch-2F-ru0
-
-Für mehr Informationen besuche gerne unsere Webseite:
-
- Carsharing-Hasloh.de
- {{.BASEURL}}
-
-Solltest du Fragen haben oder Unterstützung benötigen, kannst
-du dich jederzeit an unsere Vorsitzende wenden:
-
- Anke Freitag
- E-Mail: vorstand@carsharing-hasloh.de
- Telefon: +49 176 5013 4256
-
-Wir danken dir herzlich für dein Vertrauen in uns und freuen uns
-darauf, dich hoffentlich bald mit einem Auto begrüßen zu dürfen.
-
-Mit freundlichen Grüßen,
-Dein Carsharing Hasloh Team
diff --git a/templates/email/mail_welcome.txt.tmpl b/templates/email/mail_welcome.txt.tmpl
new file mode 100644
index 0000000..eb2068d
--- /dev/null
+++ b/templates/email/mail_welcome.txt.tmpl
@@ -0,0 +1,56 @@
+Moin {{.FirstName}} {{if .Company}}({{.Company}}){{end}}👋,
+
+wir freuen uns sehr, dich als neues Mitglied bei Carsharing
+Hasloh begrüßen zu dürfen! Herzlichen Glückwunsch zur
+erfolgreichen E-Mail-Verifikation und willkommen in unserem
+Verein!
+Hier einige wichtige Informationen für dich:
+ Deine Mitgliedsnummer: {{.MembershipID}}
+
+ Dein gebuchtes Modell:
+ Name: {{.MembershipModel}}
+ Preis/Monat: {{.MembershipFee}}
+ Preis/h: {{.RentalFee}}
+
+ Mitgliedsbeitrag: Solange wir noch kein
+ Fahrzeug im Betrieb haben, zahlst Du sinnvollerweise auch
+ keinen Mitgliedsbeitrag. Es ist zur Zeit der 1.1.2025 als
+ Startdatum geplant.
+
+ Führerscheinverifikation: Weitere Informationen zur Verifikation
+ deines Führerscheins folgen in Kürze. Du musst nichts weiter tun,
+ wir werden uns bei dir melden, sobald es notwendig ist.
+
+Moqo App:
+ Wir werden die Moqo App nutzen,
+ um das Fahrzeug ausleihen zu können. Wenn Du schon mal einen
+ ersten Eindruck von dem Buchungsvorgang haben möchtest,
+ schaue Dir gerne dieses kurze Video an:
+Moqo App Nutzung
+
+ https://www.youtube.com/shorts/ZMKUX0uyOps
+Dörpsmobil:
+ Wir sind nicht alleine sondern Mitglied in einem Schleswig-Holstein
+ weiten Netz an gemeinnützigen Carsharing Anbietern. Für mehr
+ Informationen zu diesem Netzwerk haben wir auch ein Video vorbereitet:
+Dörpsmobil SH
+
+ https://www.youtube.com/watch?v=NSch-2F-ru0
+
+Für mehr Informationen besuche gerne unsere Webseite:
+
+ Carsharing-Hasloh.de
+ {{.BASEURL}}
+
+Solltest du Fragen haben oder Unterstützung benötigen, kannst
+du dich jederzeit an unsere Vorsitzende wenden:
+
+ Anke Freitag
+ E-Mail: vorstand@carsharing-hasloh.de
+ Telefon: +49 176 5013 4256
+
+Wir danken dir herzlich für dein Vertrauen in uns und freuen uns
+darauf, dich hoffentlich bald mit einem Auto begrüßen zu dürfen.
+
+Mit freundlichen Grüßen,
+Dein Carsharing Hasloh Team