12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- package email
- import (
- "net/smtp"
- "strconv"
- )
- type Sender struct {
- Hostname string
- Port int
- Username string
- Password string
- SenderAddr string
- }
- func NewEmailSender(hostname string, port int, username string, password string, senderAddr string) *Sender {
- return &Sender{
- Hostname: hostname,
- Port: port,
- Username: username,
- Password: password,
- SenderAddr: senderAddr,
- }
- }
- func (s *Sender) SendEmail(to string, subject string, content string) error {
-
- msg := []byte("To: " + to + "\n" +
- "From: Zoraxy <" + s.SenderAddr + ">\n" +
- "Subject: " + subject + "\n" +
- "MIME-version: 1.0;\nContent-Type: text/html; charset=\"UTF-8\";\n\n" +
- content + "\n\n")
-
- var auth smtp.Auth
- if s.Password != "" {
-
-
- auth = smtp.PlainAuth("", s.Username, s.Password, s.Hostname)
- }
-
- err := smtp.SendMail(s.Hostname+":"+strconv.Itoa(s.Port), auth, s.SenderAddr, []string{to}, msg)
- if err != nil {
- return err
- }
- return nil
- }
|