GNU/Linux >> Znalost Linux >  >> Linux

Odešlete e-mail z linuxového terminálu nebo skriptu pomocí příkazu mail

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' 

Linux
  1. Nejjednodušší způsob, jak odeslat poštu s obrázkovou přílohou z příkazového řádku pomocí Gmailu?

  2. Jak odeslat e-mail HTML pomocí příkazu Linux „mail“?

  3. Jak mohu odeslat e-mail z příkazového řádku?

  1. Jak odesílat poštu přes externí server SMTP pomocí příkazu mailx v Linuxu?

  2. Při odesílání e-mailu pomocí příkazu mail zadejte od uživatele

  3. matlab spustí skript z příkazové řádky linuxu

  1. Odesílejte poštu z příkazového řádku s externím serverem smtp v systému Linux

  2. 9 příkladů příkazů mail/mailx pro odesílání e-mailů z příkazového řádku v systému Linux

  3. Jak používat SSMTP k odeslání e-mailu z terminálu Linux