Haystack/backend/email.go

42 lines
708 B
Go

package main
import (
"os"
"github.com/wneessen/go-mail"
)
type MailClient struct {
client *mail.Client
}
type Mailer interface {
SendCode(to string, code string) error
}
func (m MailClient) getMessage() (*mail.Msg, error) {
message := mail.NewMsg()
if err := message.From("auth@johncosta.tech"); err != nil {
return nil, err
}
return message, nil
}
func CreateMailClient() (MailClient, error) {
client, err := mail.NewClient(
"smtp.mailbox.org",
mail.WithSMTPAuth(mail.SMTPAuthPlain),
mail.WithUsername(os.Getenv("EMAIL_USERNAME")),
mail.WithPassword(os.Getenv("EMAIL_PASSWORD")),
)
if err != nil {
return MailClient{}, err
}
return MailClient{
client: client,
}, nil
}