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 @@ + + + +
+ + + + + + +
+
+ Dörpsmobil Hasloh +
+
+ 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