-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsmtp_html.go
60 lines (46 loc) · 1.21 KB
/
smtp_html.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
package main
import (
"fmt"
"log"
"net/smtp"
"strings"
)
type Mail struct {
Sender string
To []string
Subject string
Body string
}
func main() {
sender := "[email protected]"
to := []string{
}
user := "9c1d45eaf7af5b"
password := "ad62926fa75d0f"
subject := "Simple HTML mail"
body := `<p>An old <b>falcon</b> in the sky.</p>`
request := Mail{
Sender: sender,
To: to,
Subject: subject,
Body: body,
}
addr := "smtp.mailtrap.io:2525"
host := "smtp.mailtrap.io"
msg := BuildMessage(request)
auth := smtp.PlainAuth("", user, password, host)
err := smtp.SendMail(addr, auth, sender, to, []byte(msg))
if err != nil {
log.Fatal(err)
}
fmt.Println("Email sent successfully")
}
func BuildMessage(mail Mail) string {
msg := "MIME-version: 1.0;\nContent-Type: text/html; charset=\"UTF-8\";\r\n"
msg += fmt.Sprintf("From: %s\r\n", mail.Sender)
msg += fmt.Sprintf("To: %s\r\n", strings.Join(mail.To, ";"))
msg += fmt.Sprintf("Subject: %s\r\n", mail.Subject)
msg += fmt.Sprintf("\r\n%s\r\n", mail.Body)
return msg
}