123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- package email
- import (
- "net/smtp"
- "strconv"
- )
- type Sender struct {
- Hostname string
- Domain string
- Port int
- Username string
- Password string
- SenderAddr string
- }
- func NewEmailSender(hostname string, domain string, port int, username string, password string, senderAddr string) *Sender {
- return &Sender{
- Hostname: hostname,
- Domain: domain,
- 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")
-
- auth := smtp.PlainAuth("", s.Username+"@"+s.Domain, 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
- }
|