Package mail
Overview ?
Overview ?
Package mail implements parsing of mail messages.
For the most part, this package follows the syntax as specified by RFC 5322.
Notable divergences:
* Obsolete address formats are not parsed, including addresses with
embedded route information.
* Group addresses are not parsed.
* The full range of spacing (the CFWS syntax element) is not supported,
such as breaking addresses across lines.
Index
- Variables
- type Address
- func (a *Address) String() string
- type Header
- func (h Header) AddressList(key string) ([]*Address, error)
- func (h Header) Date() (time.Time, error)
- func (h Header) Get(key string) string
- type Message
- func ReadMessage(r io.Reader) (msg *Message, err error)
Package files
message.go
Variables
var ErrHeaderNotPresent = errors.New("mail: header not in message")
type Address struct {
Name string // Proper name; may be empty.
Address string // user@domain
}
Address represents a single mail address.
An address such as "Barry Gibbs <bg@example.com>" is represented
as Address{Name: "Barry Gibbs", Address: "bg@example.com"}.
func (*Address) String
func (a *Address) String() string
String formats the address as a valid RFC 5322 address.
If the address's name contains non-ASCII characters
the name will be rendered according to RFC 2047.
type Header map[string][]string
A Header represents the key-value pairs in a mail message header.
func (h Header) AddressList(key string) ([]*Address, error)
AddressList parses the named header field as a list of addresses.
func (h Header) Date() (time.Time, error)
Date parses the Date header field.
func (h Header) Get(key string) string
Get gets the first value associated with the given key.
If there are no values associated with the key, Get returns "".
type Message struct {
Header Header
Body io.Reader
}
A Message represents a parsed mail message.
func ReadMessage(r io.Reader) (msg *Message, err error)
ReadMessage reads a message from r.
The headers are parsed, and the body of the message will be reading from r.