package textproto
import "github.com/emersion/go-message/textproto"
Index ¶
- func WriteHeader(w io.Writer, h Header) error
- type Header
- func ReadHeader(r *bufio.Reader) (Header, error)
- func (h *Header) Add(k, v string)
- func (h *Header) Copy() Header
- func (h *Header) Del(k string)
- func (h *Header) Fields() HeaderFields
- func (h *Header) FieldsByKey(k string) HeaderFields
- func (h *Header) Get(k string) string
- func (h *Header) Has(k string) bool
- func (h *Header) Set(k, v string)
- type HeaderFields
Examples ¶
Functions ¶
func WriteHeader ¶
WriteHeader writes a MIME header to w.
Types ¶
type Header ¶
type Header struct {
// contains filtered or unexported fields
}
A Header represents the key-value pairs in a message header.
The header representation is idempotent: if the header can be read and written, the result will be exactly the same as the original (including whitespace). This is required for e.g. DKIM.
Mutating the header is restricted: the only two allowed operations are
inserting a new header field at the top and deleting a header field. This is
again necessary for DKIM.
Code:play
Example¶
package main
import (
"fmt"
"github.com/emersion/go-message/textproto"
)
func main() {
var h textproto.Header
h.Add("From", "<root@nsa.gov>")
h.Add("To", "<root@gchq.gov.uk>")
h.Set("Subject", "Tonight's dinner")
fmt.Println("From: ", h.Get("From"))
fmt.Println("Has Received: ", h.Has("Received"))
fmt.Println("Header fields:")
fields := h.Fields()
for fields.Next() {
fmt.Println(" ", fields.Key())
}
}
func ReadHeader ¶
ReadHeader reads a MIME header from r. The header is a sequence of possibly continued Key: Value lines ending in a blank line.
func (*Header) Add ¶
Add adds the key, value pair to the header. It prepends to any existing fields associated with key.
func (*Header) Copy ¶
Copy creates an independent copy of the header.
func (*Header) Del ¶
Del deletes the values associated with key.
func (*Header) Fields ¶
func (h *Header) Fields() HeaderFields
Fields iterates over all the header fields.
The header may not be mutated while iterating, except using HeaderFields.Del.
func (*Header) FieldsByKey ¶
func (h *Header) FieldsByKey(k string) HeaderFields
FieldsByKey iterates over all fields having the specified key.
The header may not be mutated while iterating, except using HeaderFields.Del.
func (*Header) Get ¶
Get gets the first value associated with the given key. If there are no values associated with the key, Get returns "".
func (*Header) Has ¶
Has checks whether the header has a field with the specified key.
func (*Header) Set ¶
Set sets the header fields associated with key to the single field value. It replaces any existing values associated with key.
type HeaderFields ¶
type HeaderFields interface { // Next advances to the next header field. It returns true on success, or // false if there is no next field. Next() (more bool) // Key returns the key of the current field. Key() string // Value returns the value of the current field. Value() string // Del deletes the current field. Del() }
HeaderFields iterates over header fields. Its cursor starts before the first field of the header. Use Next to advance from field to field.
Source Files ¶
- Version
- v0.10.1
- Published
- May 14, 2019
- Platform
- linux/amd64
- Imports
- 7 packages
- Last checked
- 9 hours ago –
Tools for package owners.