smtpd

package
v0.0.0-...-deb6d62 Latest Latest
Warning

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

Go to latest
Published: Apr 4, 2017 License: BSD-3-Clause Imports: 11 Imported by: 15

Documentation

Overview

Package smtpd implements an SMTP server. Hooks are provided to customize its behavior.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type BasicEnvelope

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

func (*BasicEnvelope) AddRecipient

func (e *BasicEnvelope) AddRecipient(rcpt MailAddress) error

func (*BasicEnvelope) BeginData

func (e *BasicEnvelope) BeginData() error

func (*BasicEnvelope) Close

func (e *BasicEnvelope) Close() error

func (*BasicEnvelope) Write

func (e *BasicEnvelope) Write(line []byte) error

type Connection

type Connection interface {
	Addr() net.Addr
	Close() error // to force-close a connection
}

Connection is implemented by the SMTP library and provided to callers customizing their own Servers.

type Envelope

type Envelope interface {
	AddRecipient(rcpt MailAddress) error
	BeginData() error
	Write(line []byte) error
	Close() error
}

type MailAddress

type MailAddress interface {
	Email() string    // email address, as provided
	Hostname() string // canonical hostname, lowercase
}

MailAddress is defined by

type SMTPError

type SMTPError string

func (SMTPError) Error

func (e SMTPError) Error() string

type Server

type Server struct {
	Addr         string        // TCP address to listen on, ":25" if empty
	Hostname     string        // optional Hostname to announce; "" to use system hostname
	ReadTimeout  time.Duration // optional read timeout
	WriteTimeout time.Duration // optional write timeout

	PlainAuth bool // advertise plain auth (assumes you're on SSL)

	// OnNewConnection, if non-nil, is called on new connections.
	// If it returns non-nil, the connection is closed.
	OnNewConnection func(c Connection) error

	// OnNewMail must be defined and is called when a new message beings.
	// (when a MAIL FROM line arrives)
	OnNewMail func(c Connection, from MailAddress) (Envelope, error)
}

Server is an SMTP server.

func (*Server) ListenAndServe

func (srv *Server) ListenAndServe() error

ListenAndServe listens on the TCP network address srv.Addr and then calls Serve to handle requests on incoming connections. If srv.Addr is blank, ":25" is used.

func (*Server) Serve

func (srv *Server) Serve(ln net.Listener) error

Jump to

Keyboard shortcuts

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