2022-03-05 12:10:20 +01:00
# go-mail - Simple and easy way to send mails in Go
[![Go Report Card ](https://goreportcard.com/badge/github.com/wneessen/go-mail )](https://goreportcard.com/report/github.com/wneessen/go-mail) [![Build Status ](https://api.cirrus-ci.com/github/wneessen/go-mail.svg )](https://cirrus-ci.com/github/wneessen/go-mail) < a href = "https://ko-fi.com/D1D24V9IX" >< img src = "https://uploads-ssl.webflow.com/5c14e387dab576fe667689cf/5cbed8a4ae2b88347c06c923_BuyMeACoffee_blue.png" height = "20" alt = "buy ma a coffee" ></ a >
2022-03-10 10:53:38 +01:00
The main idea of this library was to provide a simple interface to sending mails for
my [JS-Mailer ](https://github.com/wneessen/js-mailer ) project. It quickly evolved into a
full-fledged mail library.
2022-03-05 12:10:20 +01:00
2022-03-10 16:19:51 +01:00
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.
2022-03-14 10:33:15 +01:00
Parts of this library (especially some parts of [msgwriter.go ](msgwriter.go )) have been forked/ported from the
[go-mail/mail ](https://github.com/go-mail/mail ) respectively [go-gomail/gomail ](https://github.com/go-gomail/gomail )
which both seems to not be maintained anymore.
2022-03-10 16:19:51 +01:00
## Features
Some of the features of this library:
* [X] Only Standard Library dependant
2022-03-12 15:19:32 +01:00
* [X] Modern, idiomatic Go
2022-03-10 16:56:41 +01:00
* [X] Sane and secure defaults
2022-03-10 16:19:51 +01:00
* [X] SSL/TLS support
* [X] StartTLS support with different policies
* [X] Makes use of contexts for a better control flow and timeout/cancelation handling
* [X] SMTP Auth support (LOGIN, PLAIN, CRAM-MD5, DIGEST-MD5)
* [X] RFC5322 compliant mail address validation
* [X] Support for common mail header field generation (Message-ID, Date, Bulk-Precedence, etc.)
* [X] Reusing the same SMTP connection to send multiple mails
2022-03-14 10:29:53 +01:00
* [X] Support for attachments and inline embeds
2022-03-10 16:19:51 +01:00
* [ ] Support for different encodings
2022-03-10 10:53:38 +01:00
2022-03-12 15:19:32 +01:00
## Examples
2022-03-14 10:33:15 +01:00
The package is shipped with example code. Check it out on the packages
2022-03-12 15:28:15 +01:00
[GoDoc page ](https://pkg.go.dev/github.com/wneessen/go-mail#pkg-examples )