Documentation ¶
Index ¶
- Variables
- func MimeHeaderDecode(str string) string
- type Address
- type Envelope
- func (e *Envelope) Len() int
- func (e *Envelope) NewReader() io.Reader
- func (e *Envelope) ParseHeaders() error
- func (e *Envelope) PopRcpt() Address
- func (e *Envelope) PushRcpt(addr Address)
- func (e *Envelope) Reseed(remoteIP string, clientID uint64)
- func (e *Envelope) ResetTransaction()
- func (e *Envelope) String() string
- type Pool
Constants ¶
This section is empty.
Variables ¶
var Dec mime.WordDecoder
A WordDecoder decodes MIME headers containing RFC 2047 encoded-words. Used by the MimeHeaderDecode function. It's exposed public so that an alternative decoder can be set, eg Gnu iconv by importing the mail/inconv package. Another alternative would be to use https://godoc.org/golang.org/x/text/encoding
var (
ErrHeadersAlreadyParsed = errors.New("headers already parsed")
)
Functions ¶
func MimeHeaderDecode ¶
MimeHeaderDecode converts 7 bit encoded mime header strings to UTF-8
Types ¶
type Address ¶
type Address struct { // User is local part User string // Host is the domain Host string // ADL is at-domain list if matched ADL []string // PathParams contains any ESTMP parameters that were matched PathParams [][]string // NullPath is true if <> was received NullPath bool // Quoted indicates if the local-part needs quotes Quoted bool // IP stores the IP Address, if the Host is an IP IP net.IP // DisplayName is a label before the address (RFC5322) DisplayName string // DisplayNameQuoted is true when DisplayName was quoted DisplayNameQuoted bool }
Address encodes an email address of the form `<user@host>`
func NewAddress ¶
NewAddress takes a string of an RFC 5322 address of the form "Gogh Fir <gf@example.com>" or "foo@example.com".
func (*Address) IsPostmaster ¶
type Envelope ¶
type Envelope struct { // Remote IP address RemoteIP string // Message sent in EHLO command Helo string // Sender MailFrom Address // Recipients RcptTo []Address // Data stores the header and message body Data bytes.Buffer // Subject stores the subject of the email, extracted and decoded after calling ParseHeaders() Subject string // TLS is true if the email was received using a TLS connection TLS bool // Header stores the results from ParseHeaders() Header textproto.MIMEHeader // Values hold the values generated when processing the envelope by the backend Values map[string]interface{} // Hashes of each email on the rcpt Hashes []string // additional delivery header that may be added DeliveryHeader string // Email(s) will be queued with this id QueuedId string // ESMTP: true if EHLO was used ESMTP bool // When locked, it means that the envelope is being processed by the backend sync.Mutex }
Envelope of Email represents a single SMTP message.
func NewEnvelope ¶
func (*Envelope) Len ¶
Len returns the number of bytes that would be in the reader returned by NewReader()
func (*Envelope) NewReader ¶
NewReader returns a new reader for reading the email contents, including the delivery headers
func (*Envelope) ParseHeaders ¶
ParseHeaders parses the headers into Header field of the Envelope struct. Data buffer must be full before calling. It assumes that at most 30kb of email data can be a header Decoding of encoding to UTF is only done on the Subject, where the result is assigned to the Subject field
func (*Envelope) ResetTransaction ¶
func (e *Envelope) ResetTransaction()
ResetTransaction is called when the transaction is reset (keeping the connection open)