---
name: "aiosmtpd"
section: "1"
platform: "linux"
package: "python3-aiosmtpd"
version: "1.4.6-5"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/aiosmtpd"
---

# aiosmtpd(1)

asyncio based SMTP server Provides an asynchronous, RFC 5321 compliant Simple Mail Transfer Protocol (SMTP) server that supports customizable extensions.

## NAME

aiosmtpd - asyncio based SMTP server

Provides an asynchronous, RFC 5321 compliant Simple Mail Transfer Protocol (SMTP) server that supports customizable extensions.

- **Author**

  The aiosmtpd Developers

- **Date**

  2025-03-23

- **Copyright**

  2015-2022, The aiosmtpd Developers

- **Version**

  1\.4.6

- **Manual section**

  1

## SYNOPSIS

```
usage: aiosmtpd [-h] [-v] [-n] [-c CLASSPATH] [-s SIZE] [-u] [-d]
                [-l [[HOST][:PORT]]] [--smtpscert CERTFILE]
                [--smtpskey KEYFILE] [--tlscert CERTFILE] [--tlskey KEYFILE]
                [--no-requiretls]
                [CLASSARGS ...]
```

### Options

- **CLASSARGS**

  Additional arguments passed to the handler CLASS.

- **-h, --help**

  show this help message and exit

- **-v, --version**

  show program's version number and exit

- **-n, --nosetuid**

  This program generally tries to setuid **nobody**, unless this flag is set.  The setuid call will fail if this program is not run as root (in which case, use this flag).

- **-c \<CLASSPATH\>, --class \<CLASSPATH\>**

  Use the given class, as a Python dotted import path, as the handler class for SMTP events.  This class can process received messages and do other actions during the SMTP dialog.  Uses **aiosmtpd.handlers.Debugging** by default.

- **-s \<SIZE\>, --size \<SIZE\>**

  Restrict the total size of the incoming message to **SIZE** number of bytes via the RFC 1870 SIZE extension. Defaults to 33,554,432 bytes.

- **-u, --smtputf8**

  Enable the **SMTPUTF8** extension as defined in RFC 6531.

- **-d, --debug**

  Increase debugging output. Every **-d** increases debugging level by one.

- **-l \<\[HOST\]\[:PORT\]\>, --listen \<\[HOST\]\[:PORT\]\>**

  Optional host and port to listen on.  If the **PORT** part is not given, then port **8025** is used.  If only **:PORT** is given, then **localhost** is used for the hostname.  If neither are given, **localhost:8025** is used.

- **--smtpscert \<CERTFILE\>**

  The certificate file for implementing **SMTPS**. If given, the parameter **--smtpskey** must also be specified.

- **--smtpskey \<KEYFILE\>**

  The key file for implementing **SMTPS**. If given, the parameter **--smtpscert** must also be specified.

- **--tlscert \<CERTFILE\>**

  The certificate file for implementing **STARTTLS**. If given, the parameter **--tlskey** must also be specified.

- **--tlskey \<KEYFILE\>**

  The key file for implementing **STARTTLS**. If given, the parameter **--tlscert** must also be specified.

- **--no-requiretls**

  If specified, disables **require\_starttls** of the SMTP class. (By default, **require\_starttls** is True.) Has no effect if **--tlscert** and **--tlskey** are not specified.

## ENVIRONMENT

- **AIOSMTPD\_CONTROLLER\_TIMEOUT**

  ```
  How long the main thread will wait (in seconds) until the SMTP thread is ready.
  Default: 1.0
  ```

## AUTHOR

The aiosmtpd Developers

## COPYRIGHT

2015-2022, The aiosmtpd Developers
