Instalacja i konfiguracja msmtp na Debianie

Lekki klient SMTP do wysyłania maili systemowych (cron, backupy, alerty)
bez instalowania Postfixa lub Exima. Logowanie przez syslog (zalecane).


🎯 Cel

  • wysyłanie maili z serwera (cron, skrypty, monitoring)
  • użycie zewnętrznego serwera SMTP
  • brak pełnego MTA (Postfix / Exim)
  • bezproblemowa współpraca z AppArmor

Instalacja pakietów

apt update
apt install -y msmtp msmtp-mta mailutils

Konfiguracja globalna /etc/msmtprc

nano /etc/msmtprc

Minimalna, zalecana konfiguracja

defaults
auth on
tls on
tls_trust_file /etc/ssl/certs/ca-certificates.crt
syslog LOG_MAIL

account default
host you_smtp_server
port 587
from you@example.com
user you@example.com
//password YOUR_SMTP_PASSWORD
passwordeval "cat /root/.smtp_pass"

Zabezpieczenie pliku:

chmod 600 /etc/msmtprc

(Zalecane) Hasło poza plikiem konfiguracyjnym

echo 'YOUR_SMTP_PASSWORD' > /root/.smtp_pass
chmod 600 /root/.smtp_pass

W /etc/msmtprc:

passwordeval "cat /root/.smtp_pass"

Test wysyłki

echo "Test message from Debian server" | mail -s "msmtp test" you@example.com

Jeśli mail dotrze — konfiguracja SMTP działa.


Logi (WAŻNE)

Używamy syslog, a nie plików w /var/log.

journalctl -t msmtp

lub:

grep msmtp /var/log/syslog

Przykład wpisu:

msmtp: host=you_smtp_server tls=on auth=on user=...

Debug (opcjonalnie)

msmtp --debug you@example.com

Używać tylko do diagnostyki (nie w cron).


Najczęstsze problemy

Mail dochodzi, ale brak pliku logu

  • To normalne
  • Sprawdzaj journalctl -t msmtp

Gmail trafia do SPAM

  • Sprawdź SPF / DKIM / DMARC domeny

📌 Podsumowanie

msmtp to najprostszy i najbezpieczniejszy sposób wysyłania maili z Debiana:

  • bez daemonów
  • bez kolejek
  • idealny do cronów i alertów

Gotowe ✅