chasquid

command module
v1.13.0 Latest Latest
Warning

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

Go to latest
Published: Dec 24, 2023 License: Apache-2.0 Imports: 32 Imported by: 0

README

chasquid

chasquid is an SMTP (email) server with a focus on simplicity, security, and ease of operation.

It is designed mainly for individuals and small groups.

It's written in Go, and distributed under the Apache license 2.0.

Go tests Go Report Card Coverage
Docs OFTC IRC

Features

  • Easy
    • Easy to configure.
    • Hard to mis-configure in ways that are harmful or insecure (e.g. no open relay, or clear-text authentication).
    • Monitoring HTTP server, with exported variables and tracing to help debugging.
    • Integrated with Debian, Ubuntu, and Arch.
    • Supports using Dovecot for authentication.
  • Useful
    • Multiple/virtual domains, with per-domain users and aliases.
    • Suffix dropping (user+something@domainuser@domain).
    • Hooks for integration with greylisting, anti-virus, anti-spam, and DKIM/DMARC.
    • International usernames (SMTPUTF8) and domain names (IDNA).
  • Secure
    • Tracking of per-domain TLS support, prevents connection downgrading.
    • Multiple TLS certificates.
    • Easy integration with Let's Encrypt.
    • SPF and MTA-STS checking.

Documentation

The how-to guide and the installation guide are the best starting points on how to install, configure and run chasquid.

You will find all documentation here.

Contact

If you have any questions, comments or patches, please send them to the mailing list, chasquid@googlegroups.com.
To subscribe, send an email to chasquid+subscribe@googlegroups.com.

Security issues can be reported privately to albertito@blitiri.com.ar.

Bug reports and pull requests on GitHub are also welcome.

You can also reach out via IRC, #chasquid on OFTC.

Documentation

Overview

chasquid is an SMTP (email) server, with a focus on simplicity, security, and ease of operation.

See https://blitiri.com.ar/p/chasquid for more details.

Directories

Path Synopsis
cmd
internal
aliases
Package aliases implements an email aliases resolver.
Package aliases implements an email aliases resolver.
auth
Package auth implements authentication services for chasquid.
Package auth implements authentication services for chasquid.
config
Package config implements the chasquid configuration.
Package config implements the chasquid configuration.
courier
Package courier implements various couriers for delivering messages.
Package courier implements various couriers for delivering messages.
domaininfo
Package domaininfo implements a domain information database, to keep track of things we know about a particular domain.
Package domaininfo implements a domain information database, to keep track of things we know about a particular domain.
dovecot
Package dovecot implements functions to interact with Dovecot's authentication service.
Package dovecot implements functions to interact with Dovecot's authentication service.
envelope
Package envelope implements functions related to handling email envelopes (basically tuples of (from, to, data).
Package envelope implements functions related to handling email envelopes (basically tuples of (from, to, data).
expvarom
Package expvarom implements an OpenMetrics HTTP exporter for the variables from the expvar package.
Package expvarom implements an OpenMetrics HTTP exporter for the variables from the expvar package.
haproxy
Package haproxy implements the handshake for the HAProxy client protocol version 1, as described in https://www.haproxy.org/download/1.8/doc/proxy-protocol.txt.
Package haproxy implements the handshake for the HAProxy client protocol version 1, as described in https://www.haproxy.org/download/1.8/doc/proxy-protocol.txt.
localrpc
Local RPC package.
Local RPC package.
maillog
Package maillog implements a log specifically for email.
Package maillog implements a log specifically for email.
nettrace
Package nettrace implements tracing of requests.
Package nettrace implements tracing of requests.
normalize
Package normalize contains functions to normalize usernames, domains and addresses.
Package normalize contains functions to normalize usernames, domains and addresses.
protoio
Package protoio contains I/O functions for protocol buffers.
Package protoio contains I/O functions for protocol buffers.
queue
Package queue implements our email queue.
Package queue implements our email queue.
safeio
Package safeio implements convenient I/O routines that provide additional levels of safety in the presence of unexpected failures.
Package safeio implements convenient I/O routines that provide additional levels of safety in the presence of unexpected failures.
set
Package set implement sets for various types.
Package set implement sets for various types.
smtp
Package smtp implements the Simple Mail Transfer Protocol as defined in RFC 5321.
Package smtp implements the Simple Mail Transfer Protocol as defined in RFC 5321.
smtpsrv
Package smtpsrv implements chasquid's SMTP server and connection handler.
Package smtpsrv implements chasquid's SMTP server and connection handler.
sts
Package sts implements the MTA-STS (Strict Transport Security), RFC 8461.
Package sts implements the MTA-STS (Strict Transport Security), RFC 8461.
testlib
Package testlib provides common test utilities.
Package testlib provides common test utilities.
tlsconst
Package tlsconst contains TLS constants for human consumption.
Package tlsconst contains TLS constants for human consumption.
trace
Package trace extends nettrace with logging.
Package trace extends nettrace with logging.
userdb
Package userdb implements a simple user database.
Package userdb implements a simple user database.
test
util/conngen
SMTP connection generator, for testing purposes.
SMTP connection generator, for testing purposes.
util/coverhtml
Generate an HTML visualization of a Go coverage profile.
Generate an HTML visualization of a Go coverage profile.
util/fexp
Fetch an URL, and check if the response matches what we expect.
Fetch an URL, and check if the response matches what we expect.
util/generate_cert
Utility to generate self-signed certificates.
Utility to generate self-signed certificates.
util/loadgen
SMTP load generator, for testing purposes.
SMTP load generator, for testing purposes.
util/minidns
minidns is a trivial DNS server used for testing.
minidns is a trivial DNS server used for testing.

Jump to

Keyboard shortcuts

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