package email

import (
	"crypto/tls"
	"net/smtp"

	"github.com/jordan-wright/email"
)

func (s Service) Send(m Mail) (err error) {
	e := email.NewEmail()
	e.To = m.To
	e.Cc = m.Cc
	e.Bcc = m.Bcc
	e.From = s.from
	e.Subject = m.Subject
	e.Text = []byte(m.Body)

	for _, a := range m.Attachments {
		e.Attach(a.Content, a.Name, a.MimeType)
	}
	err = e.SendWithTLS(s.cfg.SMTP.Host+":"+s.cfg.SMTP.Port, smtp.PlainAuth(
		s.cfg.SMTP.User,
		s.cfg.SMTP.User,
		s.cfg.SMTP.Password,
		s.cfg.SMTP.Host,
	), &tls.Config{
		ServerName: s.cfg.SMTP.Host,
	})

	// err = s.pool.Send(e, time.Second*5)

	return
}
