73 lines
1.6 KiB
Go
73 lines
1.6 KiB
Go
package app
|
|
|
|
import (
|
|
"bytes"
|
|
"fmt"
|
|
"log"
|
|
"net/smtp"
|
|
"os"
|
|
"text/template"
|
|
)
|
|
|
|
const CONFIG_SMTP_HOST = "smtp.gmail.com"
|
|
const CONFIG_SMTP_PORT = 587
|
|
const CONFIG_SENDER_NAME = "HIS <hats.nutech@gmail.com>"
|
|
const CONFIG_AUTH_EMAIL = "hats.nutech@gmail.com"
|
|
const CONFIG_AUTH_PASSWORD = "lbfjfuywqktkexij"
|
|
|
|
func Mail() {
|
|
// dialer := gomail.NewDialer(
|
|
// CONFIG_SMTP_HOST,
|
|
// CONFIG_SMTP_PORT,
|
|
// CONFIG_AUTH_EMAIL,
|
|
// CONFIG_AUTH_PASSWORD,
|
|
// )
|
|
|
|
// return dialer
|
|
}
|
|
|
|
func SendEmail(to []string, cc []string, subject, message string) error {
|
|
tmpl, err := template.ParseFiles("template/test.html")
|
|
if err != nil {
|
|
log.Fatalf("Error parsing template: %v", err)
|
|
}
|
|
|
|
fmt.Println("qwqwqw", os.Getenv("PORT"))
|
|
|
|
type Data struct {
|
|
Name string
|
|
Company string
|
|
}
|
|
|
|
data := Data{Name: "Salwa Balqis Sulaeman", Company: "HIS"}
|
|
|
|
var buf bytes.Buffer
|
|
if err := tmpl.Execute(&buf, data); err != nil {
|
|
log.Fatalf("Error executing template: %v", err)
|
|
}
|
|
|
|
// content, err := os.ReadFile("template/test.html")
|
|
// if err != nil {
|
|
// fmt.Println("Error reading file:", err)
|
|
// return err
|
|
// }
|
|
|
|
htmlString := buf.String()
|
|
|
|
sender := "From: " + CONFIG_SENDER_NAME + "\n"
|
|
subjectt := "Subject: 👋 Hello from Go\n"
|
|
mime := "MIME-version: 1.0;\nContent-Type: text/html; charset=\"UTF-8\";\n\n"
|
|
body := htmlString
|
|
messages := []byte(sender + subjectt + mime + body)
|
|
|
|
auth := smtp.PlainAuth("", CONFIG_AUTH_EMAIL, CONFIG_AUTH_PASSWORD, CONFIG_SMTP_HOST)
|
|
smtpAddr := fmt.Sprintf("%s:%d", CONFIG_SMTP_HOST, CONFIG_SMTP_PORT)
|
|
|
|
err = smtp.SendMail(smtpAddr, auth, CONFIG_AUTH_EMAIL, append(to, cc...), messages)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
return nil
|
|
}
|