Existují další termináloví klienti příkazového řádku, které lze také použít k odesílání e-mailů, jako je sendmail, mutt, SSMTP, telnet, ale v této příručce se zaměříme na mail
příkaz.
Příkaz mail vyvolá standardní binární soubor sendmail (/usr/sbin/sendmail), který se zase připojí k místnímu MTA a odešle poštu na místo určení. Místní MTA je lokálně běžící smtp server, který přijímá e-maily na portu 25.
To znamená, že na počítači, kde hodláte použít příkaz mail, by měl být spuštěn smtp server jako Postfix. Pokud žádný neběží, zobrazí se chybová zpráva "odeslat poštu:Nelze otevřít poštu:25".
Instalace
Instalujte pomocí tohoto příkazu:
Pro Ubuntu
sudo apt-get install mailutils
Za 7 centů
sudo yum install -y mailx
Pro centos 8/Alma Linux/Rhel
sudo dnf install -y mailx
Otestujte, zda je příkaz úspěšně nainstalován pomocí tohoto příkazu:
mail
Výše uvedený příkaz zkontroluje, zda existuje e-mail pro aktuálního uživatele. Měli byste vidět výstup jako tento:
➜ mail
No mail for centos
Použití
Odeslání jednoduchého e-mailu
Tento příkaz použijte k odeslání e-mailu na [email protected]
. -s
argument příkazového řádku slouží k určení předmětu.
mail -s "Test mail" [email protected]
Výše uvedený příkaz se zablokuje po stisknutí klávesy Enter a čeká, až napíšete zprávu. Až budete hotovi, použijte Ctrl-D
upozornit poštovního klienta, že jste hotovi a e-mail je připraven k odeslání.
❯ mail -s "Test mail" [email protected]
Hey John,
Please remember to send me the Linux Book.
Regards,
Me.
EOT
EOT
byl zadán, když jsem stiskl Ctrl-D
. Jakmile to uděláte, příkaz mail odešle zprávu k doručení a hotovo.
Odeslat zprávu s obsahem ze souboru
Tento příkaz použijte k odeslání zprávy ze souboru /path/to/file.txt
.
mail -s "Test mail" [email protected] < /path/to/file.txt
Můžete také použít tuto jednu vložku, kde odešlete obsah, který chcete odeslat, a poté jej přenesete do příkazu mail.
echo "Hello world" | mail -s "Test mail" [email protected]
Odeslat e-mail více příjemcům
Chcete-li odeslat e-mail více příjemcům, můžete použít seznam e-mailů oddělených čárkami jako v tomto příkladu:
echo "Hello world" | mail -s "Test mail" [email protected],[email protected]
Přidání příjemců CC a BCC
Lze také připojit adresu slepé kopie (BCC) a adresy kopie (CC). Použijte -c <email>
pro CC a -b <email>
pro skrytou kopii.
Tento příklad specifikuje CC a BCC:
echo "Hello world" | mail -s "Test mail" -c [email protected] -b [email protected]
Zadejte jméno odesílatele a adresu
Můžete použít volbu -r
k zadání jména odesílatele a adresy, jak je vidět níže:
echo "Hello world" | mail -s "Test mail" –r "Kip<[email protected]>" [email protected]
Případně můžete použít -a
přidat další záhlaví, které se má připojit ke zprávě. Zde je příklad, jak poskytnout FROM
jako součást toho.
echo "Hello world" | mail -s "Test mail" [email protected] -aFrom:[email protected]
Chcete-li zadat název odesílatele, použijte následující syntaxi:
echo "Hello world" | mail -s "Test mail" [email protected] --aFrom:Kip\<[email protected]\>
Upozorňujeme, že musíme uniknout méně velkým a velkým šipkám, protože mají zvláštní význam pro výzvu shellu. Když zadáváte příkaz z nějakého skriptu, vynechali byste to.
Uveďte adresu pro odpověď
Použijte replyto
pro zadání odpovědi na adresu jako v tomto příkladu:
echo "Hello world" | mail -s "Test mail" [email protected] [email protected]
E-mail s přílohou
Pošlete e-mail z [email protected]
na [email protected]
s přílohou.
mail -s "The File you requested" -a ~/Documents/file.txt -r [email protected] [email protected] <<EOF
Hi jane,
Please find the file requested attached.
Kind Regards,
John.
EOF
E-mail místnímu systémovému uživateli
Chcete-li odeslat e-mail uživateli místního systému, zadejte pouze uživatelské jméno místo příjemce. Můžete připojit název hostitele, ale není to nutné pomocí @hostname
.
mail -s "Test Subject" username
Povolení podrobného
Pokud potřebujete zkontrolovat, co se děje, když se e-mail zpracovává, povolte podrobný výstup pomocí arg -v
. To je dobré pro odstraňování problémů, jako když chcete zkontrolovat příkazy SMTP používané příkazem mail. Zde je příklad:
mail -v -s "Hello theere" [email protected] <<< 'This is the message'