12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- package mailer
- import (
- "bytes"
- "html/template"
- "net/smtp"
- "git.linuxforward.com/byom/byom-onboard/internal/platform/config"
- )
- const welcomeEmailTemplate = `
- Bienvenue sur Byom!
- Votre application a été configurée avec succès et est prête à être utilisée.
- Informations d'accès :
- ---------------------
- Nom d'utilisateur : {{.Username}}
- Mot de passe : {{.Password}}
- URL de votre application :
- --------------------------
- {{range .Subdomains}}
- {{.}}
- {{end}}
- Application principale : {{.WebAppURL}}
- Pour bien commencer :
- ---------------------
- {{.SetupGuide}}
- Pour des raisons de sécurité, nous vous recommandons de changer votre mot de passe lors de votre première connexion.
- Si vous avez besoin d'aide, n'hésitez pas à contacter notre équipe d'assistance.
- Cordialement,
- Byom
- `
- type Mailer struct {
- auth *smtp.Auth
- serverAddr string
- from string
- }
- type EmailData struct {
- Username string
- Password string
- Subdomains []string
- WebAppURL string
- SetupGuide string
- }
- func NewMailer(config *config.MailerConfig) *Mailer {
- auth := smtp.PlainAuth(
- config.Identity,
- config.Username,
- config.Password,
- config.Host,
- )
- serverAddr := config.Host + ":" + config.Port
- return &Mailer{
- auth: &auth,
- serverAddr: serverAddr,
- from: config.Username,
- }
- }
- func (m *Mailer) SendEmail(to string, data *EmailData) error {
- tmpl := template.Must(template.New("welcomeEmail").Parse(welcomeEmailTemplate))
- var tpl bytes.Buffer
- err := tmpl.Execute(&tpl, data)
- if err != nil {
- return err
- }
- body := tpl.String()
- return smtp.SendMail(m.serverAddr, *m.auth, m.from, []string{to}, []byte(body))
- }
|