go-mail/README.md

34 lines
2 KiB
Markdown
Raw Normal View History

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
* [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
2022-03-14 10:35:23 +01:00
* [X] SMTP Auth support (LOGIN, PLAIN, CRAM-MD)
2022-03-10 16:19:51 +01:00
* [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-14 10:35:23 +01:00
* [ ] Support for different encodings (existing but not fully tested)
2022-03-10 10:53:38 +01:00
## Examples
2022-03-14 10:33:15 +01:00
The package is shipped with example code. Check it out on the packages
[GoDoc page](https://pkg.go.dev/github.com/wneessen/go-mail#pkg-examples)