Documentation ¶
Overview ¶
gophermail is a simple package for sending mail using net/smtp.
Features:
- Poviding both plain text and HTML message bodies
- Attachments with data fed from an io.Reader
- Reply-To header
- To, Cc, and Bcc recipients
Notes:
- UTF-8 encoding is always assumed.
- Message bodies are base64 encoded instead of the more readable quoted-printable encoding.
Known Issues:
- `Subject: ` headers longer than 75 characters are not wrapped into multiple encoded-words as per RFC 2047. Use short subjects.
TODO:
- Use quoted-printable encoding for message bodies.
- Properly wrap `Subject:` headers longer than 75 characters.
- Add support for `Sender:` header.
- Add support for multiple `From:` and `Reply-To:` addresses.
- Auto-add a `Date:` header. i.e. "Date: " + time.Now().UTC().Format(time.RFC822)
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ErrMissingFromAddress = errors.New("No from address specified.")
View Source
var ErrMissingRecipient = errors.New("No recipient specified. At one To, Cc, or Bcc recipient is required.")
Functions ¶
func NewBase64MimeEncoder ¶
func NewBase64MimeEncoder(w io.Writer) io.WriteCloser
Types ¶
type Attachment ¶
type Attachment struct { // Name must be set to a valid file name. Name string // Optional. // Uses mime.TypeByExtension and falls back // to application/octet-stream if unknown. ContentType string Data io.Reader }
An Attachment represents an email attachment.
type Message ¶
type Message struct { // Technically this could be a list of addresses but we don't support that. See RFC 2822 s3.6.2. From string // Technically this could be a list of addresses but we don't support that. See RFC 2822 s3.6.2. ReplyTo string // optional // TODO(JPOEHLS): Make these slices of mail.Address and add AddTo, AddCc, AddBcc funcs that take strings. (Inspired by gopostal's API, https://github.com/pcrawfor/gopostal) // At least one of these slices must have a non-zero length. To, Cc, Bcc []string Subject string // optional Body string // optional HTMLBody string // optional Attachments []Attachment // optional // Extra mail headers. Headers mail.Header }
A Message represents an email message. Addresses may be of any form permitted by RFC 5322.
Click to show internal directories.
Click to hide internal directories.