2014-10-15 23:47:07 +08:00
|
|
|
# Gomail
|
|
|
|
|
|
|
|
## Introduction
|
|
|
|
|
2015-07-23 04:59:28 +08:00
|
|
|
Gomail is a simple and efficient package to send emails. It is well tested and
|
|
|
|
documented.
|
|
|
|
|
|
|
|
It is versioned using [gopkg.in](https://gopkg.in) so I promise
|
|
|
|
they will never be backward incompatible changes within each version.
|
2014-10-15 23:47:07 +08:00
|
|
|
|
2015-07-17 01:33:38 +08:00
|
|
|
It requires Go 1.2 or newer.
|
2014-10-15 23:47:07 +08:00
|
|
|
|
|
|
|
|
|
|
|
## Features
|
|
|
|
|
2015-07-23 04:59:28 +08:00
|
|
|
Gomail supports:
|
|
|
|
- Attachments
|
|
|
|
- Embedded images
|
|
|
|
- HTML and text templates
|
|
|
|
- Automatic encoding of special characters
|
|
|
|
- SSL and TLS
|
|
|
|
- Sending multiple emails with the same SMTP connection
|
|
|
|
- Any method to send emails: SMTP, postfix (not included but easily doable), etc
|
2014-10-15 23:47:07 +08:00
|
|
|
|
|
|
|
|
|
|
|
## Documentation
|
|
|
|
|
2015-07-23 04:37:05 +08:00
|
|
|
https://godoc.org/gopkg.in/gomail.v2-unstable
|
2014-10-15 23:47:07 +08:00
|
|
|
|
|
|
|
|
|
|
|
## Download
|
|
|
|
|
2015-07-23 04:37:05 +08:00
|
|
|
go get gopkg.in/gomail.v2-unstable
|
2014-10-15 23:47:07 +08:00
|
|
|
|
|
|
|
|
|
|
|
## Example
|
|
|
|
|
2014-10-20 18:55:04 +08:00
|
|
|
```go
|
|
|
|
package main
|
|
|
|
|
|
|
|
import (
|
2015-07-23 04:37:05 +08:00
|
|
|
"gopkg.in/gomail.v2-unstable"
|
2014-10-20 18:55:04 +08:00
|
|
|
)
|
|
|
|
|
|
|
|
func main() {
|
|
|
|
msg := gomail.NewMessage()
|
|
|
|
msg.SetHeader("From", "alex@example.com")
|
|
|
|
msg.SetHeader("To", "bob@example.com", "cora@example.com")
|
|
|
|
msg.SetAddressHeader("Cc", "dan@example.com", "Dan")
|
|
|
|
msg.SetHeader("Subject", "Hello!")
|
|
|
|
msg.SetBody("text/html", "Hello <b>Bob</b> and <i>Cora</i>!")
|
2015-07-17 01:35:21 +08:00
|
|
|
msg.Attach(gomail.NewFile("/home/Alex/lolcat.jpg"))
|
2014-10-20 18:55:04 +08:00
|
|
|
|
2015-07-17 01:35:21 +08:00
|
|
|
d := gomail.NewPlainDialer("smtp.example.com", "user", "123456", 587)
|
2014-10-20 18:55:04 +08:00
|
|
|
|
|
|
|
// Send the email to Bob, Cora and Dan
|
2015-07-17 01:35:21 +08:00
|
|
|
if err := d.DialAndSend(msg); err != nil {
|
2014-10-20 18:55:04 +08:00
|
|
|
panic(err)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
```
|
2014-10-15 23:47:07 +08:00
|
|
|
|
|
|
|
|
2014-10-22 23:47:24 +08:00
|
|
|
## FAQ
|
|
|
|
|
|
|
|
### x509: certificate signed by unknown authority
|
|
|
|
|
|
|
|
If you get this error it means the certificate used by the SMTP server is not
|
|
|
|
considered valid by the client running Gomail. As a quick workaround you can
|
|
|
|
bypass the verification of the server's certificate chain and host name by using
|
|
|
|
`SetTLSConfig`:
|
|
|
|
|
2015-07-17 01:35:21 +08:00
|
|
|
d := gomail.NewPlainDialer("smtp.example.com", "user", "123456", 587)
|
|
|
|
d.TLSConfig = &tls.Config{InsecureSkipVerify: true}
|
2014-10-22 23:47:24 +08:00
|
|
|
|
|
|
|
Note, however, that this is insecure and should not be used in production.
|
|
|
|
|
|
|
|
|
2015-07-21 05:18:34 +08:00
|
|
|
## Contribute
|
|
|
|
|
|
|
|
See [CONTRIBUTING.md](CONTRIBUTING.md).
|
2014-10-15 23:47:07 +08:00
|
|
|
|
|
|
|
|
2015-07-21 05:34:28 +08:00
|
|
|
## Change log
|
|
|
|
|
|
|
|
See [CHANGELOG.md](CHANGELOG.md).
|
|
|
|
|
|
|
|
|
2015-07-21 05:18:34 +08:00
|
|
|
## Contact
|
|
|
|
|
|
|
|
You can ask questions on the [Gomail
|
2014-10-15 23:47:07 +08:00
|
|
|
thread](https://groups.google.com/d/topic/golang-nuts/ywPpNlmSt6U/discussion)
|
2015-07-21 05:18:34 +08:00
|
|
|
in the Go mailing-list.
|
2015-07-22 05:31:38 +08:00
|
|
|
|
|
|
|
|
|
|
|
## Support
|
|
|
|
|
|
|
|
If you want to support the development of Gomail, I gladly accept donations.
|
|
|
|
|
|
|
|
I will give 100% of the money I receive to
|
|
|
|
[Enfants, Espoir Du Monde](http://www.eedm.fr/).
|
|
|
|
EEDM is a French NGO which helps children in Bangladesh, Cameroun, Haiti, India
|
|
|
|
and Madagascar. All its members are volunteers so its operating costs are only
|
|
|
|
1.9%. So your money will directly helps children of these countries.
|
|
|
|
|
|
|
|
As an added bonus, your donations will also tip me by lowering my taxes :smile:
|
|
|
|
I will send an email with the receipt of the donation to EEDM annually to all
|
|
|
|
donors.
|
|
|
|
|
2015-07-23 04:59:28 +08:00
|
|
|
[![Donate](https://www.paypalobjects.com/en_US/i/btn/btn_donate_LG.gif)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=PYQKC7VFVXCFG)
|