OpenSMTPD
Related articles
This article explains how to install and configure a simple OpenSMTPD server.
Contents
Installation
Install opensmtpd from the official repositories.
Simple OpenSMTPD/mbox configuration
Create user accounts
- Create a user account on the mail server for each desired mailbox.
# useradd -m -s /bin/bash roger # useradd -m -s /bin/bash shirley
- OpenSMTPD will deliver messages to the user account's mbox file at
/var/spool/mail/<username>
- Multiple SMTP email addresses can be routed to a given mbox if desired.
Craft a simple smtpd.conf setup
- A working configuration can be had in as little as five lines! In this example 10.1.1.0/24 is the LAN IP subnet.
/etc/smtpd/smtpd.conf
listen on eth0 hostname myemaildomain.com table vdoms "/etc/smtpd/vdoms" table vusers "/etc/smtpd/vusers" accept from any for domain <vdoms> virtual <vusers> deliver to mbox accept from source { localhost 10.1.1.0/24 } for any relay
Create virtual domain and user tables
- For the domain table file; simply put one domain per line
/etc/smtpd/vdoms
personaldomain.org businessname.com
- For the user table file; list one inbound SMTP email addresses per line and then map it to an mbox user account name, SMTP email address, or any combination of the two on the right, separated by commas.
/etc/smtpd/vusers
roger@personaldomain.org roger newsletters@personaldomain.org roger,roger.rulz@gmail.com roger@businessname.com roger shirley@businessname.com shirley info@businessname.com roger,shirley contact@businessname.com info@businessname.com
Starting the server
Use the standard systemd syntax to control the smtpd.service
daemon.
# systemctl start smtpd.service
To have it start on boot
# systemctl enable smtpd.service
Watch the spice flow!
# journalctl -f _SYSTEMD_UNIT=smtpd.service
See also
- OpenSMTPD pairs well with Dovecot. Combine the two for a nice minimalist mailserver
- OpenSMTPD project page
- Simple SMTP server with OpenSMTPD