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!

Komentáře

Pro přidání komentáře se musíte přihlásit.

Zatím nejsou žádné komentáře. Budete první!

About Me

Boomer Láďa

Technologie mě fascinují a baví mě objevovat novinky. Nejvíc mě teď pohltila AI – asistenti, automatizace a vše, co může usnadnit život. K tomu mě zajímá chytrá domácnost, 3D tisk, motorky… Nejsem profík, spíš kutil amatér ...

Dozvědět se víc