imap

package
v0.20.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 23, 2025 License: MIT Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Request

func Request(data map[string]string, opts ...Option) (map[string]string, error)

Types

type Callback

type Callback struct {
	// contains filtered or unexported fields
}

type Command

type Command struct {
	Name       string   `map:"name" validate:"required"`
	Mailbox    string   `map:"mailbox"`
	OldMailbox string   `map:"oldmailbox"`
	NewMailbox string   `map:"newmailbox"`
	Reference  string   `map:"reference"`
	Pattern    string   `map:"pattern"`
	Criteria   Criteria `map:"criteria"`
	Sequence   string   `map:"sequence"`
	Dataitem   string   `map:"dataitem"`
	Value      string   `map:"value"`
}

Without login, logout and Expunge

type CopyData

type CopyData struct {
	Success bool `map:"success"`
	Count   int  `map:"count"`
}

type CreateData

type CreateData struct {
	Success bool   `map:"success"`
	Mailbox string `map:"mailbox"`
}

type Criteria

type Criteria struct {
	SeqNums    []string          `map:"seq_nums"`
	UIDs       []string          `map:"uids"`
	Since      string            `map:"since"`
	Before     string            `map:"before"`
	SentSince  string            `map:"sent_since"`
	SentBefore string            `map:"sent_before"`
	Headers    map[string]string `map:"headers"`
	Bodies     []string          `map:"bodies"`
	Texts      []string          `map:"texts"`
	Flags      []string          `map:"flags"`
	NotFlags   []string          `map:"not_flags"`
}

type Data

type Data struct {
	Select      SelectData `map:"select"`
	Examine     SelectData `map:"examine"`
	Search      SearchData `map:"search"`
	List        ListData   `map:"list"`
	Fetch       FetchData  `map:"fetch"`
	Store       StoreData  `map:"store"`
	Copy        CopyData   `map:"copy"`
	Create      CreateData `map:"create"`
	Delete      DeleteData `map:"delete"`
	Rename      RenameData `map:"rename"`
	Subscribe   StatusData `map:"subscribe"`
	Unsubscribe StatusData `map:"unsubscribe"`
	Noop        NoopData   `map:"noop"`
}

type DeleteData

type DeleteData struct {
	Success bool   `map:"success"`
	Mailbox string `map:"mailbox"`
}

type FetchData

type FetchData struct {
	Messages []Message `map:"messages"`
	Count    int       `map:"count"`
}

type ListData

type ListData struct {
	Mailboxes []MailboxInfo `map:"mailboxes"`
	Count     int           `map:"count"`
}

type MailboxInfo

type MailboxInfo struct {
	Name       string   `map:"name"`
	Attributes []string `map:"attributes"`
	Delimiter  string   `map:"delimiter"`
}

type Message

type Message struct {
	UID      int               `map:"uid"`
	Flags    []string          `map:"flags"`
	Date     time.Time         `map:"date"`
	From     string            `map:"from"`
	To       string            `map:"to"`
	Subject  string            `map:"subject"`
	Body     string            `map:"body"`
	HTMLBody string            `map:"html_body"`
	Size     int               `map:"size"`
	Headers  map[string]string `map:"headers"`
}

Message represents an email message

type NoopData

type NoopData struct {
	Success bool `map:"success"`
}

type Option

type Option func(*Callback)

func WithAfter

func WithAfter(f func(res *Res)) Option

func WithBefore

func WithBefore(f func(req *Req)) Option

type RenameData

type RenameData struct {
	Success    bool   `map:"success"`
	OldMailbox string `map:"old_mailbox"`
	NewMailbox string `map:"new_mailbox"`
}

type Req

type Req struct {
	Host            string        `map:"host" validate:"required"`
	Port            int           `map:"port" validate:"required"`
	Username        string        `map:"username" validate:"required"`
	Password        string        `map:"password" validate:"required"`
	TLS             bool          `map:"tls"`
	Timeout         time.Duration `map:"timeout"`
	StrictHostCheck bool          `map:"strict_host_check"`
	InsecureSkipTLS bool          `map:"insecure_skip_tls"`
	Commands        []Command     `map:"commands"`
	// contains filtered or unexported fields
}

func NewReq

func NewReq() *Req

func (*Req) Copy

func (r *Req) Copy(sequence, mailbox string) (*CopyData, error)

Copy implements COPY command

func (*Req) Create

func (r *Req) Create(mailbox string) (*CreateData, error)

Create implements CREATE command

func (*Req) Delete

func (r *Req) Delete(mailbox string) (*DeleteData, error)

Delete implements DELETE command

func (*Req) Do

func (r *Req) Do() (*Result, error)

func (*Req) Examine

func (r *Req) Examine(mb string) (*SelectData, error)

Examine implements EXAMINE command (read-only SELECT)

func (*Req) ExecCommands

func (r *Req) ExecCommands() (*Data, error)

DEBUG: hclog.Default().Info(fmt.Sprintf("%#v\n", data))

func (*Req) Fetch

func (r *Req) Fetch(sequence, dataitem string) (*FetchData, error)

Fetch implements FETCH command

func (*Req) List

func (r *Req) List(ref, pattern string) (*ListData, error)

List implements LIST command

func (*Req) Noop

func (r *Req) Noop() (*NoopData, error)

Noop implements NOOP command

func (*Req) Rename

func (r *Req) Rename(oldMailbox, newMailbox string) (*RenameData, error)

Rename implements RENAME command

func (*Req) Search

func (r *Req) Search(cr *Criteria) (*SearchData, error)

func (*Req) Select

func (r *Req) Select(mb string) (*SelectData, error)

func (*Req) Store

func (r *Req) Store(sequence, dataitem, value string) (*StoreData, error)

Store implements STORE command

func (*Req) Subscribe

func (r *Req) Subscribe(mailbox string) (*StatusData, error)

Subscribe implements SUBSCRIBE command

func (*Req) UIDFetch

func (r *Req) UIDFetch(sequence, dataitem string) (*FetchData, error)

func (*Req) UIDSearch

func (r *Req) UIDSearch(cr *Criteria) (*SearchData, error)

func (*Req) Unsubscribe

func (r *Req) Unsubscribe(mailbox string) (*StatusData, error)

Unsubscribe implements UNSUBSCRIBE command

type Res

type Res struct {
	Code  int    `map:"code"`
	Data  Data   `map:"data"`
	Error string `map:"error"`
}

type Result

type Result struct {
	Req    Req           `map:"req"`
	Res    Res           `map:"res"`
	RT     time.Duration `map:"rt"`
	Status int           `map:"status"`
}

type SearchData

type SearchData struct {
	All   string `map:"all"`
	Min   int    `map:"min"`
	Max   int    `map:"max"`
	Count int    `map:"count"`
}

type SelectData

type SelectData struct {
	Exists         int      `map:"exists"`
	Recent         int      `map:"recent"`
	FirstUnseen    int      `map:"first_unseen"`
	UIDNext        int      `map:"uid_next"`
	Flags          []string `map:"flags"`
	PermanentFlags []string `map:"permanent_flags"`
}

type StatusData

type StatusData struct {
	Success bool   `map:"success"`
	Mailbox string `map:"mailbox"`
}

type StoreData

type StoreData struct {
	Success bool `map:"success"`
	Count   int  `map:"count"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL