backend: moved to correct plaintext mail parsing
This commit is contained in:
@@ -80,6 +80,34 @@ func (s *EmailService) SendVerificationEmail(user *models.User, token *string) e
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
return s.SendEmail(user.Email, subject, body, "")
|
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, "")
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
167
templates/email/mail_change_password.tmpl
Normal file
167
templates/email/mail_change_password.tmpl
Normal file
@@ -0,0 +1,167 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html>
|
||||||
|
<body>
|
||||||
|
<div
|
||||||
|
style="
|
||||||
|
background-color: #f2f5f7;
|
||||||
|
color: #242424;
|
||||||
|
font-family: Optima, Candara, "Noto Sans", source-sans-pro,
|
||||||
|
sans-serif;
|
||||||
|
font-size: 16px;
|
||||||
|
font-weight: 400;
|
||||||
|
letter-spacing: 0.15008px;
|
||||||
|
line-height: 1.5;
|
||||||
|
margin: 0;
|
||||||
|
padding: 32px 0;
|
||||||
|
min-height: 100%;
|
||||||
|
width: 100%;
|
||||||
|
"
|
||||||
|
>
|
||||||
|
<table
|
||||||
|
align="center"
|
||||||
|
width="100%"
|
||||||
|
style="margin: 0 auto; max-width: 600px; background-color: #ffffff"
|
||||||
|
role="presentation"
|
||||||
|
cellspacing="0"
|
||||||
|
cellpadding="0"
|
||||||
|
border="0"
|
||||||
|
>
|
||||||
|
<tbody>
|
||||||
|
<tr style="width: 100%">
|
||||||
|
<td>
|
||||||
|
<div style="padding: 24px 24px 24px 24px; text-align: center">
|
||||||
|
<a
|
||||||
|
href="{{.BASEURL}}"
|
||||||
|
style="text-decoration: none"
|
||||||
|
target="_blank"
|
||||||
|
><img
|
||||||
|
alt="Dörpsmobil Hasloh"
|
||||||
|
src="{{.BASEURL}}/images/CarsharingSH-Hasloh-LOGO.jpeg"
|
||||||
|
style="
|
||||||
|
outline: none;
|
||||||
|
border: none;
|
||||||
|
text-decoration: none;
|
||||||
|
vertical-align: middle;
|
||||||
|
display: inline-block;
|
||||||
|
max-width: 100%;
|
||||||
|
"
|
||||||
|
/></a>
|
||||||
|
</div>
|
||||||
|
<div style="font-weight: normal; padding: 0px 24px 16px 24px">
|
||||||
|
Moin {{.FirstName}} {{.LastName}} 👋,
|
||||||
|
</div>
|
||||||
|
<div style="font-weight: normal; padding: 0px 24px 16px 24px">
|
||||||
|
wir haben die Aufforderung erhalten, Dein Passwort zu ändern. Solltest Du
|
||||||
|
dies nicht angefordert haben, ignoriere diese E-Mail einfach.
|
||||||
|
</div>
|
||||||
|
<div style="padding: 16px 0px 16px 0px">
|
||||||
|
<hr
|
||||||
|
style="
|
||||||
|
width: 100%;
|
||||||
|
border: none;
|
||||||
|
border-top: 1px solid #cccccc;
|
||||||
|
margin: 0;
|
||||||
|
"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div style="font-weight: normal; padding: 16px 24px 16px 24px">
|
||||||
|
Ansonsten kannst Du Dein Passwort jetzt ändern, indem Du hier auf den Link klickst:
|
||||||
|
</div>
|
||||||
|
<div style="text-align: center; padding: 16px 24px 16px 24px">
|
||||||
|
<a
|
||||||
|
href=" {{.BASEURL}}/auth/password/change/{{.UserID}}?token={{.Token}}"
|
||||||
|
style="
|
||||||
|
color: #ffffff;
|
||||||
|
font-size: 26px;
|
||||||
|
font-weight: bold;
|
||||||
|
background-color: #3e9bfc;
|
||||||
|
border-radius: 4px;
|
||||||
|
display: block;
|
||||||
|
padding: 16px 32px;
|
||||||
|
text-decoration: none;
|
||||||
|
"
|
||||||
|
target="_blank"
|
||||||
|
><span
|
||||||
|
><!--[if mso
|
||||||
|
]><i
|
||||||
|
style="
|
||||||
|
letter-spacing: 32px;
|
||||||
|
mso-font-width: -100%;
|
||||||
|
mso-text-raise: 48;
|
||||||
|
"
|
||||||
|
hidden
|
||||||
|
> </i
|
||||||
|
><!
|
||||||
|
[endif]--></span
|
||||||
|
><span>
|
||||||
|
Passwort ändern
|
||||||
|
</span
|
||||||
|
><span
|
||||||
|
><!--[if mso
|
||||||
|
]><i
|
||||||
|
style="letter-spacing: 32px; mso-font-width: -100%"
|
||||||
|
hidden
|
||||||
|
> </i
|
||||||
|
><!
|
||||||
|
[endif]--></span
|
||||||
|
></a
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
style="
|
||||||
|
font-weight: normal;
|
||||||
|
text-align: center;
|
||||||
|
padding: 24px 24px 0px 24px;
|
||||||
|
"
|
||||||
|
>
|
||||||
|
Alternativ kannst Du auch diesen Link in Deinem Browser öffnen:
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
style="
|
||||||
|
font-weight: bold;
|
||||||
|
text-align: center;
|
||||||
|
padding: 4px 24px 16px 24px;
|
||||||
|
"
|
||||||
|
>
|
||||||
|
{{.BASEURL}}/auth/password/change/{{.UserID}}?token={{.Token}}
|
||||||
|
</div>
|
||||||
|
<div style="font-weight: normal; padding: 16px 24px 16px 24px">
|
||||||
|
Mit Freundlichen Grüßen,
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
style="
|
||||||
|
font-weight: bold;
|
||||||
|
text-align: left;
|
||||||
|
padding: 16px 24px 16px 24px;
|
||||||
|
"
|
||||||
|
>
|
||||||
|
Der Vorstand
|
||||||
|
</div>
|
||||||
|
<div style="padding: 16px 24px 16px 24px">
|
||||||
|
<img
|
||||||
|
alt=""
|
||||||
|
src="{{.BASEURL}}/images/favicon_hu5543b2b337a87a169e2c722ef0122802_211442_96x0_resize_lanczos_3.png"
|
||||||
|
height="80"
|
||||||
|
width="80"
|
||||||
|
style="
|
||||||
|
outline: none;
|
||||||
|
border: none;
|
||||||
|
text-decoration: none;
|
||||||
|
object-fit: cover;
|
||||||
|
height: 80px;
|
||||||
|
width: 80px;
|
||||||
|
max-width: 100%;
|
||||||
|
display: inline-block;
|
||||||
|
vertical-align: middle;
|
||||||
|
text-align: center;
|
||||||
|
border-radius: 80px;
|
||||||
|
"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
13
templates/email/mail_change_password.txt.tmpl
Normal file
13
templates/email/mail_change_password.txt.tmpl
Normal file
@@ -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
|
||||||
@@ -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
|
|
||||||
<!doctype html>
|
<!doctype html>
|
||||||
<html>
|
<html>
|
||||||
<body>
|
<body>
|
||||||
|
|||||||
11
templates/email/mail_contact_form.txt.tmpl
Normal file
11
templates/email/mail_contact_form.txt.tmpl
Normal file
@@ -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
|
||||||
@@ -1,32 +1,3 @@
|
|||||||
Moin Du Vorstand 👋,
|
|
||||||
|
|
||||||
Ein neues Mitglied!!!<br />{{.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
|
|
||||||
<!doctype html>
|
<!doctype html>
|
||||||
<html>
|
<html>
|
||||||
<body>
|
<body>
|
||||||
|
|||||||
29
templates/email/mail_registration.txt.tmpl
Normal file
29
templates/email/mail_registration.txt.tmpl
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
Moin Du Vorstand 👋,
|
||||||
|
|
||||||
|
Ein neues Mitglied!!!<br />{{.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
|
||||||
@@ -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
|
|
||||||
<!doctype html>
|
<!doctype html>
|
||||||
<html>
|
<html>
|
||||||
<body>
|
<body>
|
||||||
|
|||||||
24
templates/email/mail_verification.txt.tmpl
Normal file
24
templates/email/mail_verification.txt.tmpl
Normal file
@@ -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
|
||||||
@@ -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
|
|
||||||
<!doctype html>
|
<!doctype html>
|
||||||
<html>
|
<html>
|
||||||
<body>
|
<body>
|
||||||
|
|||||||
56
templates/email/mail_welcome.txt.tmpl
Normal file
56
templates/email/mail_welcome.txt.tmpl
Normal file
@@ -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
|
||||||
Reference in New Issue
Block a user