Documentation ¶
Overview ¶
Package gomail provides a simple interface to send emails.
More info on Github: https://github.com/go-gomail/gomail
Index ¶
- func LoginAuth(username, password, host string) smtp.Auth
- type Encoding
- type File
- type Mailer
- type MailerSetting
- type Message
- func (msg *Message) AddAlternative(contentType, body string)
- func (msg *Message) Attach(f ...*File)
- func (msg *Message) DelHeader(field string)
- func (msg *Message) Embed(image ...*File)
- func (msg *Message) Export() *mail.Message
- func (msg *Message) FormatAddress(address, name string) string
- func (msg *Message) FormatDate(date time.Time) string
- func (msg *Message) GetBodyWriter(contentType string) io.Writer
- func (msg *Message) GetHeader(field string) []string
- func (msg *Message) Reset()
- func (msg *Message) SetAddressHeader(field, address, name string)
- func (msg *Message) SetBody(contentType, body string)
- func (msg *Message) SetDateHeader(field string, date time.Time)
- func (msg *Message) SetHeader(field string, value ...string)
- func (msg *Message) SetHeaders(h map[string][]string)
- func (msg *Message) SetRawHeader(field string, value ...string)
- type MessageSetting
- type SendMailFunc
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Encoding ¶
type Encoding string
Encoding represents a MIME encoding scheme like quoted-printable or base64.
const ( // QuotedPrintable represents the quoted-printable encoding as defined in // RFC 2045. QuotedPrintable Encoding = "quoted-printable" // Base64 represents the base64 encoding as defined in RFC 2045. If used, gomail will // encode the data in base64 Base64 Encoding = "base64" // Unencoded can be used to avoid encoding the body of an email. The headers // will still be encoded using quoted-printable encoding. Unencoded Encoding = "8bit" // Base64PreEncoded represents data that has already been base64 encoded Base64PreEncoded Encoding = "base64preencoded" )
type File ¶
type File struct { Name string MimeType string Content []byte ContentID string // contains filtered or unexported fields }
A File represents a file that can be attached or embedded in an email.
func CreateFile ¶
CreateFile creates a gomail.File from the given name and content.
func (*File) SetEncoding ¶
type Mailer ¶
type Mailer struct {
// contains filtered or unexported fields
}
A Mailer represents an SMTP server.
func NewCustomMailer ¶
func NewCustomMailer(addr string, auth smtp.Auth, settings ...MailerSetting) *Mailer
NewCustomMailer creates a mailer with the given authentication mechanism.
Example:
gomail.NewCustomMailer("host:587", smtp.CRAMMD5Auth("username", "secret"))
type MailerSetting ¶
type MailerSetting func(m *Mailer)
A MailerSetting can be used in a mailer constructor to configure it.
func SetSendMail ¶
func SetSendMail(s SendMailFunc) MailerSetting
SetSendMail allows to set the email-sending function of a mailer.
Example:
myFunc := func(addr string, a smtp.Auth, from string, to []string, msg []byte) error { // Implement your email-sending function similar to smtp.SendMail } mailer := gomail.NewMailer("host", "user", "pwd", 465, SetSendMail(myFunc))
func SetTLSConfig ¶
func SetTLSConfig(c *tls.Config) MailerSetting
SetTLSConfig allows to set the TLS configuration used to connect the SMTP server.
type Message ¶
type Message struct {
// contains filtered or unexported fields
}
Message represents an email.
func NewMessage ¶
func NewMessage(settings ...MessageSetting) *Message
NewMessage creates a new message. It uses UTF-8 and quoted-printable encoding by default.
func (*Message) AddAlternative ¶
AddAlternative adds an alternative body to the message. Commonly used to send HTML emails that default to the plain text version for backward compatibility.
Example:
msg.SetBody("text/plain", "Hello!") msg.AddAlternative("text/html", "<p>Hello!</p>")
func (*Message) Embed ¶
Embed embeds the images to the email.
Example:
f, err := gomail.OpenFile("/tmp/image.jpg") if err != nil { panic(err) } msg.Embed(f) msg.SetBody("text/html", `<img src="cid:image.jpg" alt="My image" />`)
func (*Message) FormatAddress ¶
FormatAddress formats an address and a name as a valid RFC 5322 address.
func (*Message) FormatDate ¶
FormatDate formats a date as a valid RFC 5322 date.
func (*Message) GetBodyWriter ¶
GetBodyWriter gets a writer that writes to the body. It can be useful with the templates from packages text/template or html/template.
Example:
w := msg.GetBodyWriter("text/plain") t := template.Must(template.New("example").Parse("Hello {{.}}!")) t.Execute(w, "Bob")
func (*Message) Reset ¶
func (msg *Message) Reset()
Reset resets all state in Message and returns all used buffers to the pool. The initial settings used to create the instance are preserved so the instance can be safely reused to create a new message.
func (*Message) SetAddressHeader ¶
SetAddressHeader sets an address to the given header field.
func (*Message) SetDateHeader ¶
SetDateHeader sets a date to the given header field.
func (*Message) SetHeaders ¶
SetHeaders sets the message headers.
Example:
msg.SetHeaders(map[string][]string{ "From": {"alex@example.com"}, "To": {"bob@example.com", "cora@example.com"}, "Subject": {"Hello"}, })
func (*Message) SetRawHeader ¶
SetRawHeader sets a value to the given header field without encoding
type MessageSetting ¶
type MessageSetting func(msg *Message)
A MessageSetting can be used as an argument in NewMessage to configure an email.
func SetCharset ¶
func SetCharset(charset string) MessageSetting
SetCharset is a message setting to set the charset of the email.
Example:
msg := gomail.NewMessage(SetCharset("ISO-8859-1"))
func SetEncoding ¶
func SetEncoding(enc Encoding) MessageSetting
SetEncoding is a message setting to set the encoding of the email.
Example:
msg := gomail.NewMessage(SetEncoding(gomail.Base64))