feat(mail): #132 unify env variables and send mails with smtp
This commit is contained in:
@@ -9,7 +9,7 @@ import (
|
||||
_ "github.com/golang-migrate/migrate/v4/source/file"
|
||||
)
|
||||
|
||||
func RunMigrations(db *sql.DB) {
|
||||
func MustRunMigrations(db *sql.DB) {
|
||||
driver, err := sqlite3.WithInstance(db, &sqlite3.Config{})
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
|
||||
57
utils/env.go
Normal file
57
utils/env.go
Normal file
@@ -0,0 +1,57 @@
|
||||
package utils
|
||||
|
||||
import (
|
||||
"log"
|
||||
"log/slog"
|
||||
"os"
|
||||
)
|
||||
|
||||
var (
|
||||
SmtpHost string
|
||||
SmtpPort string
|
||||
SmtpUser string
|
||||
SmtpPass string
|
||||
SmtpFromMail string
|
||||
SmtpFromName string
|
||||
BaseUrl string
|
||||
)
|
||||
|
||||
func MustInitEnv() {
|
||||
SmtpHost = os.Getenv("SMTP_HOST")
|
||||
SmtpPort = os.Getenv("SMTP_PORT")
|
||||
SmtpUser = os.Getenv("SMTP_USER")
|
||||
SmtpPass = os.Getenv("SMTP_PASS")
|
||||
SmtpFromMail = os.Getenv("SMTP_FROM_MAIL")
|
||||
SmtpFromName = os.Getenv("SMTP_FROM_NAME")
|
||||
BaseUrl = os.Getenv("BASE_URL")
|
||||
|
||||
if SmtpHost == "" {
|
||||
log.Fatal("SMTP_HOST must be set")
|
||||
}
|
||||
if SmtpPort == "" {
|
||||
log.Fatal("SMTP_PORT must be set")
|
||||
}
|
||||
if SmtpUser == "" {
|
||||
log.Fatal("SMTP_USER must be set")
|
||||
}
|
||||
if SmtpPass == "" {
|
||||
log.Fatal("SMTP_PASS must be set")
|
||||
}
|
||||
if SmtpFromMail == "" {
|
||||
log.Fatal("SMTP_FROM_MAIL must be set")
|
||||
}
|
||||
if SmtpFromName == "" {
|
||||
log.Fatal("SMTP_FROM_NAME must be set")
|
||||
}
|
||||
if BaseUrl == "" {
|
||||
log.Fatal("BASE_URL must be set")
|
||||
}
|
||||
|
||||
slog.Info("BASE_URL is " + BaseUrl)
|
||||
slog.Info("SMTP_HOST is " + SmtpHost)
|
||||
slog.Info("SMTP_PORT is " + SmtpPort)
|
||||
slog.Info("SMTP_USER is " + SmtpUser)
|
||||
slog.Info("SMTP_PASS is " + SmtpPass)
|
||||
slog.Info("SMTP_FROM_MAIL is " + SmtpFromMail)
|
||||
slog.Info("SMTP_FROM_NAME is " + SmtpFromName)
|
||||
}
|
||||
19
utils/mail.go
Normal file
19
utils/mail.go
Normal file
@@ -0,0 +1,19 @@
|
||||
package utils
|
||||
|
||||
import (
|
||||
"log/slog"
|
||||
"net/smtp"
|
||||
)
|
||||
|
||||
func SendWelcomeMail(to string) {
|
||||
|
||||
auth := smtp.PlainAuth("", SmtpUser, SmtpPass, SmtpHost)
|
||||
|
||||
msg := "From: " + SmtpFromName + " <" + SmtpFromMail + ">\nTo: " + to + "\nSubject: Welcome to me-fit\n\nWelcome to me-fit!"
|
||||
|
||||
err := smtp.SendMail(SmtpHost+":"+SmtpPort, auth, SmtpFromMail, []string{to}, []byte(msg))
|
||||
if err != nil {
|
||||
slog.Error("Could not send mail: " + err.Error())
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user