An email kit for golang to be reused across different projects.
MIT License
An email kit for golang to be reused across different projects.
Mailit is an easy to use mail library to send emails.
Mailit supports:
- Go 1.5
https://pkg.go.dev/github.com/wisdommatt/mailit
We also recommend you use the how to guide on this page because Mailit does basically two things:
Note: This is usually done just once
smtpConf := mailit.SMTPConfig{
Host: "domain.com",
Port: 563,
Username: "[email protected]",
Password: "*********",
}
mailer := mailit.NewMailer(smtpConf)
Sending plain text email
textDep := mailit.TextDependencies{
From: "[email protected]",
To: []string{"[email protected]", "[email protected]", "[email protected]"},
Subject: "Welcome to Mailit",
Body: "Message Body",
Attachments: []string{"attachments/1.txt", "attachments/2.txt"},
}
err := mailer.SendText(textDep)
Sending HTML template email
tempDep := mailit.TemplateDependencies{
From: "[email protected]",
To: []string{"[email protected]", "[email protected]", "[email protected]"},
Subject: "Welcome to Mailit",
ContentType: "text/html",
Template: "templates/welcome.html",
TemplateData: "Any data",
Attachments: []string{"attachments/1.txt", "attachments/2.txt"},
}
err := mailer.SendTemplate(tempDep)
Sending Text template email
tempDep := mailit.TemplateDependencies{
From: "[email protected]",
To: []string{"[email protected]", "[email protected]", "[email protected]"},
Subject: "Welcome to Mailit",
ContentType: "text/plain",
Template: "templates/sample.txt",
TemplateData: struct{
Name, Email string
}{
Name: "Wisdom Matt",
Email: "[email protected]",
},
Attachments: []string{"attachments/1.txt", "attachments/2.txt"},
}
err := mailer.SendTemplate(tempDep)
NOTE: You will access the template data the way it is access usually in Go templates e.g {{ .Name }} or {{ .Email }}
This package uses manual testing because the gomail package which it depends on used core types instead of interfaces which in turn makes it difficult to test, a thorough test is done before any changed is made on the project so there is nothing to be scared of.
Wisdom Matthew - github.com/wisdommatt
Feel free to email me at [email protected]