mailsync

package
v0.0.0-...-1792a27 Latest Latest
Warning

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

Go to latest
Published: May 9, 2014 License: GPL-2.0 Imports: 22 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ImapFlagsMap = [][]string{
		{`\Seen`, "S"},
		{`\Answered`, "R"},
		{`\Deleted`, "T"},
		{`\Draft`, "D"},
		{`\Flagged`, "F"},
	}
)

Functions

func CleanFlags

func CleanFlags(flags string) string

func FolderToStorePath

func FolderToStorePath(name foldername, separator rune) string

func ImapFlagsToString

func ImapFlagsToString(flagset imap.FlagSet) string

func MkdirIfNotExists

func MkdirIfNotExists(name string) (err error)

func StringInSlice

func StringInSlice(a string, list []string) bool

func StringToImapFlags

func StringToImapFlags(flags string) imap.FlagSet

func StrsEquals

func StrsEquals(a, b []string) bool

func ValidatePattern

func ValidatePattern(pattern string) bool

Types

type ImapConnectionConfig

type ImapConnectionConfig struct {
	Hostname string
	Username string
	Password string
}

type ImapFolder

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

func NewImapFolder

func NewImapFolder(folder *Mailfolder, metadatadir string, store *ImapStore, uidvalidity uint32, dryrun bool) (m *ImapFolder, err error)

func (*ImapFolder) AddMessage

func (m *ImapFolder) AddMessage(uid uint32, flags string, body []byte) (newuid uint32, err error)

func (*ImapFolder) Close

func (m *ImapFolder) Close() (err error)

func (*ImapFolder) DeleteMessage

func (m *ImapFolder) DeleteMessage(uid uint32) error

func (*ImapFolder) GetFlags

func (m *ImapFolder) GetFlags(uid uint32) (flags string, err error)

func (*ImapFolder) GetIgnoredMessages

func (m *ImapFolder) GetIgnoredMessages() []uint32

func (*ImapFolder) GetMessages

func (m *ImapFolder) GetMessages() map[uint32]*MessageInfo

func (*ImapFolder) HasUID

func (m *ImapFolder) HasUID(uid uint32) bool

func (*ImapFolder) IsIgnored

func (m *ImapFolder) IsIgnored(uid uint32) bool

func (*ImapFolder) ReadMessage

func (m *ImapFolder) ReadMessage(uid uint32) ([]byte, error)

func (*ImapFolder) SetFlags

func (m *ImapFolder) SetFlags(uid uint32, flags string) (err error)

func (*ImapFolder) Update

func (m *ImapFolder) Update(srcuid uint32) (uint32, error)

func (*ImapFolder) UpdateMessageList

func (m *ImapFolder) UpdateMessageList() error

type ImapMessageInfo

type ImapMessageInfo struct {
	MessageInfo
}

type ImapStore

type ImapStore struct {
	sync.Mutex
	// contains filtered or unexported fields
}

func NewImapStore

func NewImapStore(globalconfig *config.Config, config *config.StoreConfig, basemetadatadir string, dryrun bool) (m *ImapStore, err error)

func (*ImapStore) Config

func (m *ImapStore) Config() *config.StoreConfig

func (*ImapStore) CreateFolder

func (m *ImapStore) CreateFolder(name foldername) (err error)

func (*ImapStore) GetFolders

func (m *ImapStore) GetFolders() []Mailfolder

func (*ImapStore) GetMailfolderManager

func (m *ImapStore) GetMailfolderManager(name foldername) (manager MailfolderManager, err error)

func (*ImapStore) HasFolder

func (m *ImapStore) HasFolder(name foldername) bool

func (*ImapStore) Name

func (m *ImapStore) Name() string

func (*ImapStore) Separator

func (m *ImapStore) Separator() (rune, error)

func (*ImapStore) SetFolderExcluded

func (m *ImapStore) SetFolderExcluded(name foldername, excluded bool) error

func (*ImapStore) UpdateFolderList

func (m *ImapStore) UpdateFolderList() error

type MaildirFolder

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

func NewMaildirFolder

func NewMaildirFolder(folder *Mailfolder, maildir string, metadatadir string, store *MaildirStore, folderUID string, dryrun bool) (m *MaildirFolder, err error)

func (*MaildirFolder) AddMessage

func (m *MaildirFolder) AddMessage(srcuid uint32, flags string, body []byte) (uint32, error)

func (*MaildirFolder) Close

func (m *MaildirFolder) Close() (err error)

func (*MaildirFolder) DeleteMessage

func (m *MaildirFolder) DeleteMessage(uid uint32) (err error)

func (*MaildirFolder) GetFlags

func (m *MaildirFolder) GetFlags(uid uint32) (flags string, err error)

func (*MaildirFolder) GetIgnoredMessages

func (m *MaildirFolder) GetIgnoredMessages() []uint32

func (*MaildirFolder) GetMessages

func (m *MaildirFolder) GetMessages() map[uint32]*MessageInfo

func (*MaildirFolder) HasUID

func (m *MaildirFolder) HasUID(uid uint32) bool

func (*MaildirFolder) IsIgnored

func (m *MaildirFolder) IsIgnored(uid uint32) bool

func (*MaildirFolder) ReadMessage

func (m *MaildirFolder) ReadMessage(uid uint32) ([]byte, error)

func (*MaildirFolder) SetFlags

func (m *MaildirFolder) SetFlags(uid uint32, flags string) (err error)

func (*MaildirFolder) Update

func (m *MaildirFolder) Update(srcuid uint32) (outsrcuid uint32, err error)

func (*MaildirFolder) UpdateMessageList

func (m *MaildirFolder) UpdateMessageList() error

type MaildirMessageInfo

type MaildirMessageInfo struct {
	MessageInfo

	// Filename without separator + flags
	Filename  string
	Subdir    string // cur or new
	Temporary bool
}

type MaildirStore

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

func NewMaildirStore

func NewMaildirStore(globalconfig *config.Config, config *config.StoreConfig, basemetadatadir string, dryrun bool) (m *MaildirStore, err error)

func (*MaildirStore) Config

func (m *MaildirStore) Config() *config.StoreConfig

func (*MaildirStore) CreateFolder

func (m *MaildirStore) CreateFolder(name foldername) (err error)

func (*MaildirStore) GetFolders

func (m *MaildirStore) GetFolders() []Mailfolder

func (*MaildirStore) GetMailfolderManager

func (m *MaildirStore) GetMailfolderManager(name foldername) (manager MailfolderManager, err error)

func (*MaildirStore) HasFolder

func (m *MaildirStore) HasFolder(name foldername) bool

func (*MaildirStore) Name

func (m *MaildirStore) Name() string

func (*MaildirStore) Separator

func (m *MaildirStore) Separator() (rune, error)

func (*MaildirStore) SetFolderExcluded

func (m *MaildirStore) SetFolderExcluded(name foldername, excluded bool) error

func (*MaildirStore) UpdateFolderList

func (m *MaildirStore) UpdateFolderList() error

type Mailfolder

type Mailfolder struct {
	Name     foldername
	Excluded bool
}

func (*Mailfolder) Equals

func (f *Mailfolder) Equals(f2 *Mailfolder) bool

func (Mailfolder) String

func (f Mailfolder) String() string

type MailfolderManager

type MailfolderManager interface {
	UpdateMessageList() error

	HasUID(uint32) bool
	IsIgnored(uint32) bool

	GetFlags(uint32) (string, error)
	SetFlags(uint32, string) error

	ReadMessage(uint32) ([]byte, error)

	AddMessage(uint32, string, []byte) (uint32, error)
	DeleteMessage(uint32) error
	Update(uint32) (uint32, error)

	GetMessages() map[uint32]*MessageInfo
	GetIgnoredMessages() []uint32

	Close() error
}

type MessageInfo

type MessageInfo struct {
	UID    uint32
	Flags  string
	Ignore bool
}

type MessageInfoIter

type MessageInfoIter interface {
	Next() *MessageInfo
}

type RegexpPattern

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

func RegexpFromPattern

func RegexpFromPattern(pattern string) (rp *RegexpPattern, err error)

type StoreManager

type StoreManager interface {
	CreateFolder(foldername) error
	UpdateFolderList() error
	Separator() (rune, error)
	SetFolderExcluded(name foldername, excluded bool) error
	HasFolder(foldername) bool
	GetFolders() []Mailfolder
	GetMailfolderManager(foldername) (MailfolderManager, error)

	Name() string
	Config() *config.StoreConfig
}

type Storenumber

type Storenumber int
const (
	Store1 Storenumber = iota
	Store2
)

type SyncResult

type SyncResult struct {
	Error       error
	Folder      Mailfolder
	Folderindex int
}

type Syncgroup

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

func NewSyncgroup

func NewSyncgroup(globalconfig *config.Config, config *config.SyncgroupConfig, dryrun bool) (s *Syncgroup, err error)

func (*Syncgroup) List

func (s *Syncgroup) List() (err error)

func (*Syncgroup) Sync

func (s *Syncgroup) Sync(interactions int) (err error)

func (*Syncgroup) SyncFolder

func (s *Syncgroup) SyncFolder(folder Mailfolder) (err error)

func (*Syncgroup) SyncFolderWrapper

func (s *Syncgroup) SyncFolderWrapper(folder Mailfolder, folderindex int, out chan SyncResult)

func (*Syncgroup) SyncWrapper

func (s *Syncgroup) SyncWrapper(interactions int, out chan error)

type Syncstatus

type Syncstatus interface {
	SetSrcstore(store Storenumber)
	GetSrcstoreCol() (string, error)
	GetDststoreCol() (string, error)
	GetDststoreUID(srcuid uint32) (dstuid uint32, err error)
	HasUID(uid uint32) (bool, error)
	UpdateSyncstatus() error
	BeginTx() (err error)
	Commit() (err error)
	Rollback() (err error)
	Update(srcuid uint32, dstuid uint32, flags string) (err error)
	Delete(uid uint32) (err error)
	GetNewMessages(folder MailfolderManager) ([]uint32, error)
	GetDeletedMessages(folder MailfolderManager) ([]uint32, error)
	GetChangedMessages(folder MailfolderManager) ([]uint32, error)

	Close() (err error)
}

func NewUIDMapSyncstatus

func NewUIDMapSyncstatus(globalconfig *config.Config, config *config.SyncgroupConfig, basemetadatadir string, fname foldername) (u Syncstatus, err error)

type UIDMapSyncstatus

type UIDMapSyncstatus struct {
	StatusDB *sql.DB
	// contains filtered or unexported fields
}

func (*UIDMapSyncstatus) BeginTx

func (u *UIDMapSyncstatus) BeginTx() (err error)

func (*UIDMapSyncstatus) Close

func (u *UIDMapSyncstatus) Close() (err error)

func (*UIDMapSyncstatus) Commit

func (u *UIDMapSyncstatus) Commit() (err error)

func (*UIDMapSyncstatus) Delete

func (u *UIDMapSyncstatus) Delete(uid uint32) (err error)

func (*UIDMapSyncstatus) GetChangedMessages

func (u *UIDMapSyncstatus) GetChangedMessages(folder MailfolderManager) ([]uint32, error)

func (*UIDMapSyncstatus) GetDeletedMessages

func (u *UIDMapSyncstatus) GetDeletedMessages(folder MailfolderManager) ([]uint32, error)

func (*UIDMapSyncstatus) GetDststoreCol

func (u *UIDMapSyncstatus) GetDststoreCol() (string, error)

func (*UIDMapSyncstatus) GetDststoreUID

func (u *UIDMapSyncstatus) GetDststoreUID(srcuid uint32) (dstuid uint32, err error)

func (*UIDMapSyncstatus) GetNewMessages

func (u *UIDMapSyncstatus) GetNewMessages(folder MailfolderManager) ([]uint32, error)

func (*UIDMapSyncstatus) GetSrcstoreCol

func (u *UIDMapSyncstatus) GetSrcstoreCol() (string, error)

func (*UIDMapSyncstatus) HasUID

func (u *UIDMapSyncstatus) HasUID(uid uint32) (bool, error)

func (*UIDMapSyncstatus) Rollback

func (u *UIDMapSyncstatus) Rollback() (err error)

func (*UIDMapSyncstatus) SetSrcstore

func (u *UIDMapSyncstatus) SetSrcstore(store Storenumber)

func (*UIDMapSyncstatus) Update

func (u *UIDMapSyncstatus) Update(srcuid uint32, dstuid uint32, flags string) (err error)

func (*UIDMapSyncstatus) UpdateSyncstatus

func (u *UIDMapSyncstatus) UpdateSyncstatus() error

type Uint32Slice

type Uint32Slice []uint32

func (Uint32Slice) Len

func (p Uint32Slice) Len() int

func (Uint32Slice) Less

func (p Uint32Slice) Less(i, j int) bool

func (Uint32Slice) Swap

func (p Uint32Slice) Swap(i, j int)

Jump to

Keyboard shortcuts

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