52 lines
1.3 KiB
Go
52 lines
1.3 KiB
Go
|
package services
|
||
|
|
||
|
import (
|
||
|
"crypto/tls"
|
||
|
"fmt"
|
||
|
"net/smtp"
|
||
|
"net/textproto"
|
||
|
|
||
|
"github.com/jordan-wright/email"
|
||
|
"github.com/spf13/viper"
|
||
|
)
|
||
|
|
||
|
func SendMail(target string, subject string, content string) error {
|
||
|
mail := &email.Email{
|
||
|
To: []string{target},
|
||
|
From: viper.GetString("mailer.name"),
|
||
|
Subject: subject,
|
||
|
Text: []byte(content),
|
||
|
Headers: textproto.MIMEHeader{},
|
||
|
}
|
||
|
return mail.SendWithTLS(
|
||
|
fmt.Sprintf("%s:%d", viper.GetString("mailer.smtp_host"), viper.GetInt("mailer.smtp_port")),
|
||
|
smtp.PlainAuth(
|
||
|
"",
|
||
|
viper.GetString("mailer.username"),
|
||
|
viper.GetString("mailer.password"),
|
||
|
viper.GetString("mailer.smtp_host"),
|
||
|
),
|
||
|
&tls.Config{ServerName: viper.GetString("mailer.smtp_host")},
|
||
|
)
|
||
|
}
|
||
|
|
||
|
func SendMailHTML(target string, subject string, content string) error {
|
||
|
mail := &email.Email{
|
||
|
To: []string{target},
|
||
|
From: viper.GetString("mailer.name"),
|
||
|
Subject: subject,
|
||
|
HTML: []byte(content),
|
||
|
Headers: textproto.MIMEHeader{},
|
||
|
}
|
||
|
return mail.SendWithTLS(
|
||
|
fmt.Sprintf("%s:%d", viper.GetString("mailer.smtp_host"), viper.GetInt("mailer.smtp_port")),
|
||
|
smtp.PlainAuth(
|
||
|
"",
|
||
|
viper.GetString("mailer.username"),
|
||
|
viper.GetString("mailer.password"),
|
||
|
viper.GetString("mailer.smtp_host"),
|
||
|
),
|
||
|
&tls.Config{ServerName: viper.GetString("mailer.smtp_host")},
|
||
|
)
|
||
|
}
|