Documentation ¶
Overview ¶
Package gluon implements an IMAP4rev1 (+ extensions) mailserver.
Package gluon implements an IMAP4rev1 (+ extensions) mailserver.
Index ¶
- func IsNoSuchMailbox(err error) bool
- func IsNoSuchMessage(err error) bool
- type Option
- func WithCmdProfiler(builder profiling.CmdProfilerBuilder) Option
- func WithDBClient(ci db.ClientInterface) Option
- func WithDataDir(path string) Option
- func WithDatabaseDir(path string) Option
- func WithDelimiter(delimiter string) Option
- func WithDisableParallelism() Option
- func WithIMAPLimits(limits limits2.IMAP) Option
- func WithIdleBulkTime(idleBulkTime time.Duration) Option
- func WithLogger(in, out io.Writer) Option
- func WithLoginJailTime(loginJailTime time.Duration) Option
- func WithPanicHandler(panicHandler async.PanicHandler) Option
- func WithReporter(reporter reporter.Reporter) Option
- func WithStoreBuilder(builder store.Builder) Option
- func WithTLS(cfg *tls.Config) Option
- func WithUIDValidityGenerator(generator imap.UIDValidityGenerator) Option
- func WithVersionInfo(vmajor, vminor, vpatch int, name, vendor, supportURL string) Option
- type Server
- func (s *Server) AddUser(ctx context.Context, conn connector.Connector, passphrase []byte) (string, error)
- func (s *Server) AddWatcher(ofType ...events.Event) <-chan events.Event
- func (s *Server) Close(ctx context.Context) error
- func (s *Server) GetDataPath() string
- func (s *Server) GetDatabasePath() string
- func (s *Server) GetErrorCh() <-chan error
- func (s *Server) GetVersionInfo() version.Info
- func (s *Server) LoadUser(ctx context.Context, conn connector.Connector, userID string, ...) (bool, error)
- func (s *Server) RemoveUser(ctx context.Context, userID string, removeFiles bool) error
- func (s *Server) Serve(ctx context.Context, l net.Listener) error
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func IsNoSuchMailbox ¶ added in v0.15.0
IsNoSuchMailbox returns true if the error is ErrNoSuchMailbox.
func IsNoSuchMessage ¶ added in v0.15.0
IsNoSuchMessage returns true if the error is ErrNoSuchMessage.
Types ¶
type Option ¶
type Option interface {
// contains filtered or unexported methods
}
Option represents a type that can be used to configure the server.
func WithCmdProfiler ¶ added in v0.9.0
func WithCmdProfiler(builder profiling.CmdProfilerBuilder) Option
WithCmdProfiler allows a specific CmdProfilerBuilder to be set for the server's execution.
func WithDBClient ¶ added in v0.17.0
func WithDBClient(ci db.ClientInterface) Option
func WithDataDir ¶ added in v0.10.0
func WithDatabaseDir ¶ added in v0.15.0
func WithDelimiter ¶
WithDelimiter instructs the server to use the given path delimiter instead of the default ('/').
func WithDisableParallelism ¶ added in v0.12.0
func WithDisableParallelism() Option
func WithIMAPLimits ¶ added in v0.15.0
func WithIdleBulkTime ¶ added in v0.12.0
WithIdleBulkTime instructs the server to use the given IDLE bulk time.
func WithLogger ¶
WithLogger instructs the server to write incoming and outgoing IMAP communication to the given io.Writers.
func WithLoginJailTime ¶ added in v0.12.0
WithLoginJailTime instructs the server to use the given login jail time.
func WithPanicHandler ¶ added in v0.16.0
func WithPanicHandler(panicHandler async.PanicHandler) Option
func WithReporter ¶ added in v0.12.0
func WithStoreBuilder ¶ added in v0.9.0
func WithUIDValidityGenerator ¶ added in v0.15.0
func WithUIDValidityGenerator(generator imap.UIDValidityGenerator) Option
func WithVersionInfo ¶ added in v0.8.0
type Server ¶
type Server struct {
// contains filtered or unexported fields
}
Server is the gluon IMAP server.
func (*Server) AddUser ¶
func (s *Server) AddUser(ctx context.Context, conn connector.Connector, passphrase []byte) (string, error)
AddUser creates a new user and generates new unique ID for this user. If the user already exists, an error is returned (use LoadUser instead).
func (*Server) AddWatcher ¶
AddWatcher adds a new watcher which watches events of the given types. If no types are specified, the watcher watches all events.
func (*Server) GetDataPath ¶ added in v0.9.0
GetDataPath returns the path in which gluon stores its data.
func (*Server) GetDatabasePath ¶ added in v0.15.0
GetDatabasePath returns the path in which gluon stores its data.
func (*Server) GetErrorCh ¶ added in v0.12.0
GetErrorCh returns the error channel.
func (*Server) GetVersionInfo ¶ added in v0.8.0
GetVersionInfo returns the version info.
func (*Server) LoadUser ¶ added in v0.9.0
func (s *Server) LoadUser(ctx context.Context, conn connector.Connector, userID string, passphrase []byte) (bool, error)
LoadUser adds an existing user using a previously crated unique user ID. It returns true if the user was newly created, false if it already existed.
func (*Server) RemoveUser ¶ added in v0.5.0
RemoveUser removes a user from gluon.
Directories ¶
Path | Synopsis |
---|---|
benchmarks
|
|
Package connector defines the type that connects the server to a remote.
|
Package connector defines the type that connects the server to a remote. |
mock_connector
Package mock_connector is a generated GoMock package.
|
Package mock_connector is a generated GoMock package. |
internal
|
|
response
Package response implements types used when sending IMAP responses back to clients.
|
Package response implements types used when sending IMAP responses back to clients. |
session
Package session handles IMAP commands received from clients within a single IMAP session (one client connection).
|
Package session handles IMAP commands received from clients within a single IMAP session (one client connection). |
Package liner handles reading lines from clients that may or may not require continuation.
|
Package liner handles reading lines from clients that may or may not require continuation. |
mock_reporter
Package mock_reporter is a generated GoMock package.
|
Package mock_reporter is a generated GoMock package. |
Package rfc822 implements methods for handling RFC822 messages.
|
Package rfc822 implements methods for handling RFC822 messages. |
package store implements types that store message literals.
|
package store implements types that store message literals. |
mock_store
Package mock_store is a generated GoMock package.
|
Package mock_store is a generated GoMock package. |
tools
|
|