OpenSMTPD alternatives and similar software solutions
Based on the "Mail Transfer Agents" category.
Alternatively, view OpenSMTPD alternatives based on common mentions on social networks and blogs.
-
Qmail
Bind to different local ip addresses depending on the domain part of the sender argument when using `qmail-remote`.
SaaSHub - Software Alternatives and Reviews
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of OpenSMTPD or a related project?
Popular Comparisons
README
OpenSMTPD
OpenSMTPD is a FREE implementation of the server-side SMTP protocol as defined by RFC 5321 , with some additional standard extensions.
It allows ordinary machines to exchange e-mails with other systems speaking the SMTP protocol.
OpenSMTPD runs on various Unix and Unix-like operating systems including:
- Linux
- FreeBSD
- OpenBSD
- NetBSD
- DragonFlyBSD
- OSX
For more information: http://www.opensmtpd.org/portable.html
If you are looking for a comprehensive manual on how to build your own mail server visit our wiki.
Get In Touch
If you want to stay up to day with most recent developments or chat about OpenSMTPD you can:
- subscribe to our mailing list: http://www.opensmtpd.org/list.html
- join the IRC channel:
#opensmtpd
@ irc.libera.chat - submit a bug report or a feature request here on GitHub
- visit GitHub's discussions page
Documentation
The manual pages are available online, which you are encouraged to contribute to.
Install Via Package Manager
Many distributions already provide a packaged version of opensmtpd. All you need to do is install it via your package manager.
:warning: Some distributions might ship an old version of opensmtpd Be careful and check the version number to ensure you are running a secure version
Ubuntu/Debian
sudo apt install opensmtpd
Archlinux
Has a dedicated wiki page
Alpine Linux
apk install opensmtpd
Fedora
yum install opensmtpd
MacOS
OpenSMTPD is available from MacPorts:
port install opensmtpd
Install From Source
Install Dependencies
OpenSMTPD relies on:
You will also need a C compiler and git if you are cloning the git repository
By default OpenSMTPD expects latest versions of all dependencies unless noted otherwise.
Note that some distributions have different packages for a same library, you
should always use the -dev
or -devel
package (for example, libevent-dev
or libevent-devel
) if you're going to build OpenSMTPD yourself.
Get The Source Code
Clone from github:
git clone https://github.com/OpenSMTPD/OpenSMTPD.git
Latest release can always be found here
Compile
cd opensmtpd*
./bootstrap # Only if you build from git sources
./configure
make
sudo make install
Special notes for FreeBSD/DragonFlyBSD/Mac OS X:
Please launch configure with special directive about libevent and libasr directory:
FreeBSD / DragonFlyBSD:
./configure --with-libasr=/usr/local
MacOS:
./configure --with-libevent=/opt/local
Though MacOS includes a copy of bison in the bases system, you will need to install a more recent version from, e.g., MacPorts.
Install
sudo make install
Setup historical interface
OpenSMTPD provides a single utility smtpctl
to control the daemon and
the local submission subsystem.
To accomodate systems that require historical interfaces such as sendmail
,
newaliases
or makemap
, the smtpctl
utility can operate in compatibility
mode if called with the historical name.
On mailwrapper-enabled systems, this is achieved by editing /etc/mailer.conf
and adding the following lines:
sendmail /usr/sbin/smtpctl
send-mail /usr/sbin/smtpctl
mailq /usr/sbin/smtpctl
makemap /usr/sbin/smtpctl
newaliases /usr/sbin/smtpctl
Whereas on systems that don't provide mailwrapper, it can be achieved by setting the appropriate symbolic links:
ln -s /usr/sbin/smtpctl sendmail
ln -s /usr/sbin/smtpctl send-mail
ln -s /usr/sbin/smtpctl mailq
ln -s /usr/sbin/smtpctl makemap
ln -s /usr/sbin/smtpctl newaliases
The OpenSMTPD project leaves it up to the package maintainers to setup the links in their packages as it is very hard for us to accommodate all systems with the preferred method in a clean way.
Configure /etc/smtpd.conf
Please have a look at the complete format description of smtpd.conf
configuration file
Add OpenSMTPD users
To operate, OpenSMTPD requires at least one user, by default _smtpd
; and
preferably two users, by default _smtpd
and _smtpq
.
Using two users instead of one will increase security by a large factor so... if you want to voluntarily reduce security or you have absolute more faith in our code than we do, by all means use one.
The instructions below assume the default users however, the configure
script allows overriding these using the options:
--with-user-smtpd
, --with-user-queue
, and --with-group-queue
.
NetBSD, Linux (Debian, Arch Linux, ...)
mkdir /var/empty
useradd -c "SMTP Daemon" -d /var/empty -s /sbin/nologin _smtpd
useradd -c "SMTPD Queue" -d /var/empty -s /sbin/nologin _smtpq
DragonFlyBSD, FreeBSD
pw useradd _smtpd -c "SMTP Daemon" -d /var/empty -s /sbin/nologin
pw useradd _smtpq -c "SMTPD Queue" -d /var/empty -s /sbin/nologin
Mac OS X
First we need a group with an unused GID below 500
, list the current
ones used:
/usr/bin/dscl . -list /Groups PrimaryGroupID | sort -n -k2,2
Add a group - here we have picked 444
:
/usr/bin/sudo /usr/bin/dscl . -create /Groups/_smtpd
PrimaryGroupID 444
Then the user. Again we need an unused UID below 500
, list the current
ones used:
/usr/bin/dscl . -list /Users UniqueID | sort -n -k2,2
Add a user - here we have picked 444
:
/usr/bin/sudo /usr/bin/dscl . -create /Users/_smtpd UniqueID 444
/usr/bin/sudo /usr/bin/dscl . -delete /Users/_smtpd AuthenticationAuthority
/usr/bin/sudo /usr/bin/dscl . -delete /Users/_smtpd PasswordPolicyOptions
/usr/bin/sudo /usr/bin/dscl . -delete /Users/_smtpd dsAttrTypeNative:KerberosKeys
/usr/bin/sudo /usr/bin/dscl . -delete /Users/_smtpd dsAttrTypeNative:ShadowHashData
/usr/bin/sudo /usr/bin/dscl . -create /Users/_smtpd RealName "SMTP Daemon"
/usr/bin/sudo /usr/bin/dscl . -create /Users/_smtpd Password "*"
/usr/bin/sudo /usr/bin/dscl . -create /Users/_smtpd PrimaryGroupID 444
/usr/bin/sudo /usr/bin/dscl . -create /Users/_smtpd NFSHomeDirectory /var/empty
/usr/bin/sudo /usr/bin/dscl . -create /Users/_smtpd UserShell /usr/bin/false
repeat for the _smtpq
user.
Launch smtpd
First, kill any running sendmail/exim/qmail/postfix or other.
Then:
smtpd
or in debug and verbose mode
smtpd -dv
*Note that all licence references and agreements mentioned in the OpenSMTPD README section above
are relevant to that project's source code only.