github.com/admpub/mail@v0.0.0-20170408110349-d63147b0317b/util.go (about)

     1  package mail
     2  
     3  import (
     4  	"net/mail"
     5  )
     6  
     7  func MailAddr(name string, address string) *mail.Address {
     8  	return &mail.Address{
     9  		Name:    name,
    10  		Address: address,
    11  	}
    12  }
    13  
    14  type Attachments struct {
    15  	Files   []string
    16  	BaseDir string
    17  }
    18  
    19  //SendMail 发送电邮
    20  func SendMail(subject string, content string, receiver, sender string,
    21  	bcc []string, smtpConfig *SMTPConfig, attachments *Attachments) error {
    22  	c := NewSMTPClient(smtpConfig)
    23  	m := NewMail()
    24  	err := m.AddTo(receiver) //receiver e.g. "Barry Gibbs <bg@example.com>"
    25  	if err != nil {
    26  		return err
    27  	}
    28  	err = m.AddFrom(sender)
    29  	if err != nil {
    30  		return err
    31  	}
    32  	m.AddSubject(subject)
    33  	//m.AddText("Some text :)")
    34  	m.AddHTML(content)
    35  	if attachments != nil {
    36  		m.BaseDir = attachments.BaseDir
    37  		for _, v := range attachments.Files {
    38  			err = m.AddAttachment(v)
    39  			if err != nil {
    40  				return err
    41  			}
    42  		}
    43  	}
    44  	for _, addr := range bcc {
    45  		err = m.AddBCC(addr)
    46  		if err != nil {
    47  			return err
    48  		}
    49  	}
    50  	return c.Send(m)
    51  }