package emailer import ( "fmt" "time" "gopkg.in/gomail.v2" ) func init() { app.Name = "Kumoly Test" app.Copyright = fmt.Sprintf("Copyright © %v %s. All rights reserved.", time.Now().Year(), app.Name) app.Link = "https://kumoly.io" app.Logo = "http://www.duchess-france.org/wp-content/uploads/2016/01/gopher.png" app.TroubleText = "If you’re having trouble with the button '{ACTION}', copy and paste the URL below into your web browser." dial = gomail.NewDialer("mail.kumoly.io", 587, "test@kumoly.io", "test") } type App struct { Name string Link string Logo string Copyright string TroubleText string Theme string TitleColor string FooterColor string } type Button struct { Text string Link string // Color of the button, default blue(#3869D4) Color string // TextColor of the button, default blue(#ffffff) TextColor string } type Action struct { // Instructions text show before button Instructions string // InviteCode should not be used with button InviteCode string Button Button } type Body struct { // App replaced with global config App App Intros []string Content string Outros []string Actions []Action // Greeting ignored if empty Greeting string // Receiver ignored if Greeting or Receiver empty Receiver string // Signature default `Best Regards` Signature string // Sender default {{.App.Name}} Sender string } // host string, port int, username string, password string var dial *gomail.Dialer func Send(From string, To []string, Title string, b *Body) error { m := gomail.NewMessage() m.SetHeader("From", From) m.SetHeader("To", To...) m.SetHeader("Subject", Title) // m.SetAddressHeader("Cc", "dan@example.com", "Dan") // m.Attach("/home/Alex/lolcat.jpg") body, err := Parse(b) if err != nil { return err } m.SetBody("text/html", body) // Send the email return dial.DialAndSend(m) } func SetDefault(a App) { app = a } func SetDailer(d *gomail.Dialer) { dial = d }