Gưi email trong Go
func SendEmailMessage(to, cc, bcc, body, subject string) bool {
port := Getenv("SMTP_PORT", "587")
smtpServerHost := Getenv("SMTP_SERVER", "smtp.gmail.com")
senderEmail := Getenv("SMTP_USERNAME", "")
senderPassword := Getenv("SMTP_PASSWORD", "")
if smtpServerHost == "" || senderEmail == "" || senderPassword == "" {
log.Println("Error: sender info is required")
return false
}
headers := "From: " + senderEmail
headers = headers + "\nTo: " + to + ";"
rcpts := to
if len(cc) > 0 {
headers += "\nCc: " + cc + ";"
rcpts += "," + cc
}
if len(bcc) > 0 {
headers += "\nBcc: " + bcc + ";"
rcpts += "," + bcc
}
headers = strings.ReplaceAll(headers, ",", ";")
smtpServer := smtpServerHost + ":" + port
mime := "Content-Type: text/html; charset=UTF-8"
body = string(markdown.ToHTML([]byte(body), nil, nil))
msg := []byte(headers + "\nSubject: " + subject + "\n" + mime + "\n" + body + "\n")
auth := smtp.PlainAuth("", senderEmail, senderPassword, smtpServerHost)
err := smtp.SendMail(smtpServer, auth, senderEmail, strings.Split(rcpts, ","), msg)
if err != nil {
log.Printf("Error: %v", err)
return false
}
return true
}Last updated