msmtp – Lightweight MTA

Ein schlanker, benutzerfreundlicher Mail Transfer Agent für Linux und Unix-Systeme – einfach, sicher und ideal für Skripte, Cron-Jobs und Systembenachrichtigungen.

Open Source (GPL) Linux / BSD / macOS TLS / STARTTLS ~800 KB Binary

01 Was ist msmtp?

msmtp ist ein kompatible zu sendmail geschriebener Mail Transfer Agent (MTA). Es nimmt Nachrichten vom lokalen System (z. B. über das mail-Kommando oder PHP) und leitet sie an einen externen SMTP-Server weiter – ohne selbst Mails anzunehmen oder Zustellung zu übernehmen.

🎯 Einsatzzweck

Skripte, Logs, Cron-Jobs, Mail-Client (Send-Ersatz) und Systembenachrichtigungen via SMTP.

🔑 Kernidee

„Send-only" – msmtp ist ein Mail Relay, kein vollwertiger Server. Es leitet nur weiter, empfängt nichts.

🔄 Sendmail-Kompatibilität

Ersetzt /usr/sbin/sendmail im Symlink-Verfahren – Anwendungen wissen nichts davon.

02 Installation

msmtp ist in allen gängigen Distributionen enthalten. Installieren Sie es über den Paketmanager Ihrer Wahl:

Debian / Ubuntu

sudo apt update
sudo apt install msmtp msmtp-mta mailutils

Das Paket msmtp-mta legt einen Symlink /usr/sbin/sendmail → /usr/bin/msmtp an.

Arch Linux

sudo pacman -S msmtp

Alpine Linux

sudo apk add msmtp

macOS (Homebrew)

brew install msmtp

Quellen kompilieren

git clone https://github.com/msmtp/msmtp.git
cd msmtp
meson setup build --prefix=/usr/local
ninja -C build
sudo ninja -C build install

03 Konfiguration

Die Konfiguration erfolgt über die Datei ~/.msmtprc (benutzerspezifisch) oder /etc/msmtprc (systemweit). Die Datei sollte nur für den Besitzer lesbar sein.

# Rechte setzen!
chmod 600 ~/.msmtprc

Grundlegender Aufbau

1Default-Account festlegen
defaults

account default
  host smtp.example.com
  port 587
  tls on
  tls_starttls on
  auth on
  user deine@email.de
  password DeinPasswort
  from deine@email.de

Vollständiges Beispiel

# ~/.msmtprc — Komplettes Beispiel mit mehreren Accounts

defaults

# Globale Einstellungen
logfile ~/.msmtp.log
syslog on
aliases /etc/aliases

# Gmail
account gmail
  host smtp.gmail.com
  port 587
  tls on
  tls_starttls on
  auth on
  user maxbeispiel@gmail.com
  password AppPasswort123
  from max@beispiel.de
  tls_certcheck on

# Unternehmens-SMTP
account firm
  host smtp.firma.de
  port 465
  tls on
  tls_starttls off
  auth login
  user max@firma.de
  password FirmenPasswort
  from max@firma.de

# Default-Account wählen
account default : gmail

Wichtige Parameter

Parameter Beschreibung Typisch
host SMTP-Server-Hostname smtp.gmail.com
port Port (587=STARTTLS, 465=SMTPS) 587
tls TLS generell aktivieren on
auth Authentifizierungsmethode plain / login
user SMTP-Login-Name email@...
from Absender-Adresse (Envelope) name@domain
logfile Logdatei für msmtp-Nachrichten ~/.msmtp.log

Senden-Test

# E-Mail testen
echo "Test-Nachricht" | msmtp -d user@example.com

# Mit Header
echo -e "Subject: Test\n\nHier steht der Body" | msmtp user@example.com

# Debug-Modus
msmtp --debug user@example.com < nachricht.txt

04 Integration mit System-Tools

msmtp lässt sich nahtlos in viele Linux-Tools einbinden:

📧 PHP / Mail

In php.ini: sendmail_path = /usr/bin/msmtp -t

⚙️ Crontab

Log-Warnungen per Mail: MAILTO="max@beispiel.de"

🐘 Python

SMTPLib mit sendmail-Transport via msmtp als Backend.

🐚 Bash

Einfach: echo "msg" | msmtp user@host

05 Features

Was msmtp von anderen MTAs unterscheidet:

06 Dokumentation & Links

Offizielle und zusätzliche Ressourcen rund um msmtp: