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)) }