mirror of
https://github.com/wneessen/go-mail.git
synced 2024-12-22 18:50:37 +01:00
📧 Easy to use, yet comprehensive library for sending mails with Go
https://go-mail.dev
.idea | ||
auth | ||
cmd | ||
.cirrus.yml | ||
.gitignore | ||
auth.go | ||
client.go | ||
client_test.go | ||
doc.go | ||
doc_test.go | ||
encoding.go | ||
file.go | ||
go.mod | ||
go.sum | ||
header.go | ||
LICENSE | ||
msg.go | ||
msg_test.go | ||
msgwriter.go | ||
part.go | ||
README.md | ||
tls.go | ||
tls_test.go |
go-mail - Simple and easy way to send mails in Go
The main idea of this library was to provide a simple interface to sending mails for my JS-Mailer project. It quickly evolved into a full-fledged mail library.
Parts of this library (especially some parts of msgwriter.go) have been forked/ported from the GoMail which seems to not be maintained anymore.
This library is "WIP" an should not be considered "production ready", yet.
go-mail follows idiomatic Go style and best practice. It's only dependency is the Go Standard Library. It combines a lot of functionality from the standard library to give easy and convenient access to mail and SMTP related tasks.
Features
Some of the features of this library:
- Only Standard Library dependant
- Modern, idiomatic Go
- Sane and secure defaults
- SSL/TLS support
- StartTLS support with different policies
- Makes use of contexts for a better control flow and timeout/cancelation handling
- SMTP Auth support (LOGIN, PLAIN, CRAM-MD5, DIGEST-MD5)
- RFC5322 compliant mail address validation
- Support for common mail header field generation (Message-ID, Date, Bulk-Precedence, etc.)
- Reusing the same SMTP connection to send multiple mails
- Support for attachments and inline embeds
- Support for different encodings
Examples
The packageis shipped with example code. Check it out on the packages GoDoc page