---
name: "mailwrapper"
section: "8"
platform: "openbsd"
package: "man"
version: "8.0-current-20261101"
release: "OpenBSD 8.0-current (2026-11-01)"
platforms: ["freebsd", "openbsd"]
url: "https://new.carta.tech/mailwrapper"
---

# mailwrapper(8)

invoke appropriate MTA software based on configuration file

## NAME

**mailwrapper** – invoke appropriate MTA software based on configuration file

## SYNOPSIS

Special. See below.

## DESCRIPTION

At one time, the only Mail Transfer Agent (MTA) software easily available was [sendmail(8)](/sendmail/8.md). As a result of this, most Mail User Agents (MUAs) such as [mail(1)](/mail/1.md) had the path and calling conventions expected by [sendmail(8)](/sendmail/8.md) compiled in.

Times have changed, however. On a modern system, the administrator may wish to use one of several available MTAs.

It would be difficult to modify all MUA software typically available on a system, so most of the authors of alternative MTAs have written their front end message submission programs so that they use the same calling conventions as [sendmail(8)](/sendmail/8.md) and may be put into place instead of [sendmail(8)](/sendmail/8.md) in */usr/sbin/sendmail*.

[sendmail(8)](/sendmail/8.md) also typically has aliases named [mailq(8)](/mailq/8.md) and [newaliases(8)](/newaliases/8.md) linked to it. The program knows to behave differently when its *argv\[0\]* is “mailq” or “newaliases” and behaves appropriately. Typically, replacement MTAs provide similar functionality, either through a program that also switches behavior based on calling name, or through a set of programs that provide similar functionality.

Although having drop-in replacements for [sendmail(8)](/sendmail/8.md) helps in installing alternative MTAs, it essentially makes the configuration of the system depend on hard installing new programs in */usr*. This leads to configuration problems for many administrators, since they may wish to install a new MTA without altering the system provided */usr*. (This may be, for example, to avoid having upgrade problems when a new version of the system is installed over the old.) They may also have a shared */usr* among several machines, and may wish to avoid placing implicit configuration information in a read-only */usr*.

The **mailwrapper** program is designed to replace */usr/sbin/sendmail* and to invoke an appropriate MTA instead of [sendmail(8)](/sendmail/8.md) based on configuration information placed in */etc/mailer.conf*. This permits the administrator to configure which MTA is to be invoked on the system at run time.

## FILES

Configuration for **mailwrapper** is kept in */etc/mailer.conf*. */usr/sbin/sendmail* is typically set up as a symlink to **mailwrapper** which is not usually invoked on its own.

## DIAGNOSTICS

**mailwrapper** will invoke [smtpd(8)](/smtpd/8.md) if its configuration file is missing. It will return an error value and print a diagnostic if its configuration file is malformed, or does not contain a mapping for the name under which **mailwrapper** was invoked.

## SEE ALSO

[mail(1)](/mail/1.md), [mailer.conf(5)](/mailer.conf/5.md), [mailq(8)](/mailq/8.md), [newaliases(8)](/newaliases/8.md), [sendmail(8)](/sendmail/8.md), [smtpd(8)](/smtpd/8.md)

## AUTHORS

Perry E. Metzger ⟨*perry@piermont.com*⟩

## BUGS

The entire reason this program exists is a crock. Instead, a command for how to submit mail should be standardized, and all the "behave differently if invoked with a different name" behavior of things like [mailq(8)](/mailq/8.md) should go away.
