This repository has been archived on 2025-08-09. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
web-app-template/service/mail.go
Tim Wundenberg 0fab1e1f2e
All checks were successful
Build Docker Image / Build-Docker-Image (push) Successful in 50s
Build and Push Docker Image / Build-And-Push-Docker-Image (push) Successful in 2m17s
fix: missing service tests #181
2024-10-06 10:05:00 +02:00

34 lines
848 B
Go

package service
import (
"fmt"
"me-fit/types"
"net/smtp"
)
type MailService interface {
SendMail(to string, subject string, message string) error
}
type MailServiceImpl struct {
serverSettings *types.ServerSettings
}
func NewMailServiceImpl(serverSettings *types.ServerSettings) MailServiceImpl {
return MailServiceImpl{serverSettings: serverSettings}
}
func (m MailServiceImpl) SendMail(to string, subject string, message string) error {
if m.serverSettings.Smtp == nil {
return nil
}
s := m.serverSettings.Smtp
auth := smtp.PlainAuth("", s.User, s.Pass, s.Host)
msg := fmt.Sprintf("From: %v <%v>\nTo: %v\nSubject: %v\nMIME-version: 1.0;\nContent-Type: text/html; charset=\"UTF-8\";\n\n%v", s.FromName, s.FromMail, to, subject, message)
return smtp.SendMail(s.Host+":"+s.Port, auth, s.FromMail, []string{to}, []byte(msg))
}