FILE / Unmei/Backend
v1/mail.go
Исходный файл и его история в репозитории.
45 lines
942 B
Go
45 lines
942 B
Go
package v1
|
|
|
|
import (
|
|
"bytes"
|
|
"fmt"
|
|
"html/template"
|
|
"log"
|
|
"net/smtp"
|
|
"os"
|
|
)
|
|
|
|
const (
|
|
format = "From: %v\r\n" +
|
|
"To: %v\r\n" +
|
|
"Subject: %v\r\n" +
|
|
"Content-Type: text/html; charset=UTF-8\r\n" +
|
|
"MIME-version: 1.0;\r\n\r\n" +
|
|
"%v\r\n"
|
|
)
|
|
|
|
func SendMail(to string, subject string, body string) {
|
|
msg := []byte(fmt.Sprintf(format, privateConfig.Email.Username, to, subject, body))
|
|
err := smtp.SendMail(privateConfig.Email.Host+":587", mailAuth, privateConfig.Email.Username, []string{to}, msg)
|
|
if err != nil {
|
|
log.Println(err)
|
|
}
|
|
}
|
|
|
|
func SendMailTemplate(to string, subject string, name string, data interface{}) {
|
|
wd, err := os.Getwd()
|
|
if err != nil {
|
|
log.Println(err)
|
|
}
|
|
t, err := template.ParseFiles(wd + `/mail_templates/` + name)
|
|
if err != nil {
|
|
log.Println(err)
|
|
}
|
|
buf := new(bytes.Buffer)
|
|
if err := t.Execute(buf, data); err != nil {
|
|
log.Println(err)
|
|
}
|
|
body := buf.String()
|
|
SendMail(to, subject, body)
|
|
}
|