Odesílání maílů ze systému přes SMTP
Posílání e-mailů ze serveru? Žádná věda, říkal internet. No dobře, možná trochu...
Víte, jak to chodí. Máte svůj milovaný Debian server a najednou zjistíte, že by bylo fajn, kdyby vám občas napsal, co se mu přihodilo, když jste nekoukali. Třeba jestli v noci vůbec spal, jestli se cron znovu nezbláznil, nebo jestli se mu po restartu aspoň trochu ulevilo.
Ale co s tím, když nechcete mít doma zbytečný monstrum jako Postfix, který sice umí všechno (včetně výroby kafe), ale vy potřebujete jen prostě nějak poslat e-mail?
No, boomer na to přišel!
Když velký pošťák Postfix letí z domu…
Debian 12 vám totiž zabalí s sebou rovnou Postfix. Díky, kluci z Debianu, ale já si fakt jen potřebuju poslat mail, ne provozovat lokální pobočku Seznamu nebo Googlu.
Takže nejdřív vyprovodíme Postfix hezky ze dveří:
apt remove --purge postfix
Ufff. Hotovo. Teď ta sranda může začít.
Jednoduché řešení pro lenochy? Jmenuje se MSMTP!
Naštěstí existuje takový milý prográmek, který neumí skoro nic. Teda kromě toho, že odešle e-mail. A to nám bohatě stačí. Dámy a pánové, seznamte se – MSMTP.
Instalace? Jednodušší než seřadit VHS kazety podle barvy obalu:
apt install msmtp msmtp-mta
Během instalace se mě Debian pokusil vystrašit otázkou, jestli chci AppArmor, nějakou speciální bezpečnostní vychytávku. Díky, nechci. Volím „NO“ – já si totiž věřím (skoro vždycky).

Trocha té černé magie v konfiguraci
Ještě než odešlete svůj první e-mail, je potřeba sdělit MSMTP, kdo je váš SMTP server. K tomu slouží soubor /etc/msmtprc. Není se čeho bát, jen trochu editace a trošku magie:
defaults
auth on
tls on
tls_starttls off
tls_trust_file /etc/ssl/certs/ca-certificates.crt
logfile /var/log/msmtp.log
account default
host smtp.server.poskytovatele
port 465
from tvoje_mailova@adresa.cz
user tvoje_mailova@adresa.cz
password tvoje_heslo
auth on
tls on
tls_starttls off
aliases /etc/aliases
account root : default
A protože Debian má rád pořádek a práva, nastavíme mu je:
chmod 0640 /etc/msmtprc
chgrp msmtp /etc/msmtprc
Koho zajímá, kdo je ten "root"? Alias je tvůj kamarád!
SMTP servery jsou vybíravější než já při výběru restaurace. Takže aby e-mail od uživatele root prošel bez úhony (a nedostal rovnou ban), nastavíme si hezky alias:
Soubor /etc/aliases:
root: tvoje_mailova@adresa.cz
Chvilka pravdy – pošleme první mail!
Teď přichází ten okamžik. Napětí by se dalo krájet, tak to pojďme zkusit:
(echo "To: neci_mailova@adresa.cz"; echo "Subject: Testovací zpráva"; echo "From: tvoje_mailova@adresa.cz"; echo ""; echo "Ahoj, toto je testovací e-mail."; echo ".") | sendmail -t
Pokud jste udělali všechno dobře, váš e-mail odletěl do světa rychleji než SMSka z Nokie 3310!
A co když programy chtějí SMTP přímo?
Žádný strach. MSMTP myslí i na tyhle situace. Stačí spustit jednoduchou službu, která čeká na vaše zprávy na localhostu (tedy na adrese 127.0.0.1, port 25):
systemctl enable msmtpd.service
chgrp msmtp /etc/msmtprc
Hotovo! Teď si můžete gratulovat. Zvládli jste nastavit mailování na serveru, aniž byste ztratili rozum, vlasy nebo mládí.
A to je pro dnešek všechno, milí boomeři. Uvidíme se příště, až zase něco objevím!