Documentation ¶
Overview ¶
Package gluon implements an IMAP4rev1 (+ extensions) mailserver.
Index ¶
- type Option
- func WithCmdProfiler(builder profiling.CmdProfilerBuilder) Option
- func WithDataDir(path string) Option
- func WithDelimiter(delimiter string) Option
- func WithLogger(in, out io.Writer) Option
- func WithStoreBuilder(builder store.Builder) Option
- func WithTLS(cfg *tls.Config) Option
- func WithVersionInfo(vmajor, vminor, vpatch int, name, vendor, supportURL string) Option
- type Server
- func (s *Server) AddUser(ctx context.Context, conn connector.Connector, encryptionPassphrase []byte) (string, error)
- func (s *Server) AddWatcher() chan events.Event
- func (s *Server) Close(ctx context.Context) error
- func (s *Server) GetDataPath() string
- func (s *Server) GetUserDataPath(userID string) (string, error)
- func (s *Server) GetVersionInfo() internal.VersionInfo
- func (s *Server) LoadUser(ctx context.Context, conn connector.Connector, userID string, ...) error
- func (s *Server) RemoveUser(ctx context.Context, userID string) error
- func (s *Server) RemoveWatcher(ch chan events.Event)
- func (s *Server) Serve(ctx context.Context, l net.Listener) chan error
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
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 WithDataDir ¶ added in v0.10.0
func WithDelimiter ¶
WithDelimiter instructs the server to use the given path delimiter instead of the default ('/').
func WithLogger ¶
WithLogger instructs the server to write incoming and outgoing IMAP communication to the given io.Writers.
func WithStoreBuilder ¶ added in v0.9.0
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, encryptionPassphrase []byte) (string, error)
AddUser creates a new user and generates new unique ID for this user. If you have an existing userID, please use LoadUser instead.
func (*Server) AddWatcher ¶
AddWatcher adds a new watcher.
func (*Server) Close ¶
Close closes the server. It firstly closes all TCP listeners then closes the backend.
func (*Server) GetDataPath ¶ added in v0.9.0
func (*Server) GetUserDataPath ¶ added in v0.9.0
func (*Server) GetVersionInfo ¶ added in v0.8.0
func (s *Server) GetVersionInfo() internal.VersionInfo
func (*Server) LoadUser ¶ added in v0.9.0
func (s *Server) LoadUser(ctx context.Context, conn connector.Connector, userID string, passphrase []byte) error
LoadUser loads an existing user's data from disk. This function can also be used to assign a custom userID to a mail server user.
func (*Server) RemoveUser ¶ added in v0.5.0
RemoveUser removes a user from the mailserver.
func (*Server) RemoveWatcher ¶ added in v0.8.1
RemoveWatcher removes the watcher from the server and closes the channel.
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. |
liner
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. |
remote/mock_remote
Package mock_remote is a generated GoMock package.
|
Package mock_remote is a generated GoMock package. |
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 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. |