GNU/Linux >> Znalost Linux >  >> Linux

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

Odesílání pošty přes servery SMTP

Výchozí příkaz mail na terminálu Linux používá k odesílání e-mailů místní server smtp (mta) na portu 25. Někdy však musíte určit externí smtp server, který se má používat pro odesílání e-mailů.

Například jste právě nastavili smtp server, jako je Postfix nebo Exim, pak byste jej chtěli vyzkoušet, abyste zjistili, zda přijímá a předává e-maily správně nebo ne.

Možnost posílat e-maily z příkazového řádku pomocí tohoto externího smtp serveru je rychlá, spíše než muset nastavovat poštovního klienta, jako je Thunderbird, na místním počítači.

Existují 2 nástroje příkazového řádku zvané mailx a swaks, které lze použít k odesílání e-mailů pomocí externího smtp serveru. Ty jsou docela užitečné, když potřebujete posílat e-maily z bash skriptu automatizovaným způsobem.

1. příkaz mailx

Příkaz mailx je dostupný z mnoha různých balíčků, jako je mailutils, heirloom-mailx atd. Nejprve musíte pomocí příkazu aptitude vyhledat balíček mailx dostupný pro váš systém. Zde je příklad

$ aptitude search mailx
p   bsd-mailx                                                              - simple mail user agent
p   bsd-mailx:i386                                                         - simple mail user agent
v   mailx                                                                  -
v   mailx:i386

Chcete-li zjistit, který příkaz mailx váš systém používá, spusťte příkaz readlink. Zde je ukázkový výstup.

$ readlink -f /usr/bin/mailx
/usr/bin/bsd-mailx
$ readlink -f /usr/bin/mailx
/usr/bin/mail.mailutils

Ne všechny varianty mailx mohou k odesílání pošty používat externí smtp servery. Dokáže to pouze ten, který pochází z balíčku s-nail (vytažený heirloom-mailx).

Budeme používat heirloom-mailx, protože umožňuje zadat podrobnosti o připojení smtp v jediném příkazu a rychle odeslat a odeslat e-mail.

$ sudo apt-get install heirloom-mailx

Nyní odešlete e-mail s externím serverem smtp, jako je tento -

echo "This is the message body and contains the message" | mailx -v -r "[email protected]" -s "This is the subject" -S smtp="mail.example.com:587" -S smtp-use-starttls -S smtp-auth=login -S smtp-auth-user="[email protected]" -S smtp-auth-password="abc123" -S ssl-verify=ignore [email protected]

Zde je krok za krokem verze stejného příkazu -

$ echo "This is the message body and contains the message" | mailx -v \
> -r "[email protected]" \
> -s "This is the subject" \
> -S smtp="mail.example.com:587" \
> -S smtp-use-starttls \
> -S smtp-auth=login \
> -S smtp-auth-user="[email protected]" \
> -S smtp-auth-password="abc123" \
> -S ssl-verify=ignore \
> [email protected]

Ujistěte se, že používáte správná nastavení, jako je číslo portu, autentizační mechanismus atd. Příkaz vytvoří podrobný výstup s úplnými podrobnostmi o komunikaci smtp, která probíhá za vámi, což velmi usnadňuje testování a ladění.

Poznámka: Balíček heirloom-mailx byl odstraněn z Ubuntu verze 18 a novější. Nyní musíte nainstalovat balíček s-nail.

$ sudo apt-get install s-nail

Příkaz s-nail je stejný jako příkaz heirloom mailx. Jen ten název je jiný. Spusťte stejný příkaz výše nahrazením mailx za s-nail a mělo by to fungovat.

Pokud používáte nejnovější verzi s-nail (14.9.x), syntaxe pro specifikaci podrobností smtp serveru se může mírně lišit. Podívejte se na nejnovější manuál zde

http://manpages.ubuntu.com/manpages/bionic/en/man1/s-nail.1.html

Podívejte se na předchozí příspěvek o příkazu mailx zde -
9 příkladů příkazů mail/mailx pro odesílání e-mailů z příkazového řádku v systému Linux

2. Příkaz Swaks

Swaks (švýcarský armádní nůž pro SMTP) je jednoduchý nástroj příkazového řádku, který lze použít k testování smtp serverů, aby se zjistilo, zda dělají svou práci správně. Podporuje také TLS.

Nainstalujte swaky na Ubuntu/Debian pomocí následujícího příkazu

$ sudo apt-get install swaks

Nyní odešlete e-mail

$ echo "This is the message body" | swaks --to [email protected] --from "[email protected]" --server mail.example.com --auth LOGIN --auth-user "[email protected]" --auth-password "abc123" -tls

Všechny možnosti jsou docela samozřejmé. Volba "--server" určuje externí SMTP server, který se má použít, "--auth" určuje typ ověřování. Volba "-tls" říká swakům, aby použili STARTTLS.

Další možnosti naleznete na manuálové stránce.


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

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

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

  1. Linux / UNIX :Jak posílat e-maily s přílohami pomocí příkazu mailx

  2. Jak odesílat e-maily externímu uživateli pomocí Mailx v systému Linux

  3. Jak odeslat nezpracovanou poštovní zprávu na Linuxu?

  1. 4 způsoby, jak odeslat e-mailovou přílohu z příkazového řádku systému Linux

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

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