Welcome to Our Website

16 Parancs Példa, hogy Küldjön e-Mailt A Linux Parancssor

Akár egy fejlesztő dolgozik non-stop a Linux parancssorból vagy egy adminisztrátornak akar naplók vagy más adatok kivont alkalmazott rendszerek, tudva, hogy küldjön e-mailt a parancssor nagyon hasznos.

ebben a bejegyzésben példákat talál arra, hogyan küldhet e-mailt a terminálról. Megnézzük az egyéni konfigurációk, majd érintse meg, hogyan kell beállítani SMTP kapcsolatok e-mail fiókok vagy e-mail szolgáltatók., Megmutatom, hogyan kell telepíteni a szükséges konzol mailer csomagok, valamint a háttér parancssori lehetőségek alapján a csomag kézikönyvek.

parancssori Mailer csomagok beállítása

az oktatóanyagban található összes mailer csomag a Debian speciális Csomagkezelőjén keresztül érhető el, így az alábbi példában szereplő telepítési lépések felhasználhatók az összes bemutatott csomaghoz.,

Felhívjuk figyelmét, hogy ezeket a szoftvereket más alapértelmezett csomagkezelők is telepíthetik, mint például a yum vagy dnf A Linux rendszer terjesztésétől függően.

a legtöbb esetben vagy sendmail vagy postfix minden Linux disztribúcióban elérhető a dobozon kívül, vagy legalábbis ezt mondják a hasonló blogbejegyzések. Vagy szerencsétlen vagyok, vagy a többiek tévedtek, de manuálisan kellett telepítenem egyet. Azonban feltétlenül szüksége van az egyikre az e-mail kézbesítéshez.,

Sendmail beállítása ssmtp csomaggal

folytatom a sendmail és az SSMTP csomaggal. SSMTP tartalmazza asendmail csomag a motorháztető alatt, mint látni fogja, és megkönnyíti a konfigurációt, ami elég nehézsendmail egyébként.

1. lépés., Ellenőrizze, hogy a parancssori Mailer csomag telepítve van — e

írja be a mailer csomag nevét csak úgy, ahogy a parancsot futtatja, hogy ellenőrizze, hogy elérhető — e:

  • Ha a csomag telepítve van, a parancs fut, és a parancssor megváltozik-miközben megpróbálja végrehajtani a parancsot -, majd megjelenik egy villogó kurzor, amelyet a Recipient names must be specified . Következtetés: a csomag telepítve van.,

  • Ha a csomag nincs telepítve, figyelmeztető üzenetet és javaslatot kap a telepítéshez:

ebben a példában megpróbáltam, ha a sendmail parancs működik. Miután hozzáadtuk az SSMTP csomagot, ez a parancs és assmtp parancs mind működni fog, mind pedig megváltoztatja a parancssort a terminálon. Nézzük meg!

2. lépés., Telepítése Sendmail parancssori Mailer csomag

ahogy a terminál kimenet javasolt, meg kell futtatni az Advanced Package Manager telepítési parancs-általában root engedély-telepíteni a szükséges csomagot. Mint korábban említettük, a konfigurációk sokkal egyszerűbbek a sendmail esetén, amikor elvonja a konfiguráció összetettségét. Ezt meg lehet tenni az SSMTP:

 sudo apt install ssmtp

3.lépés. Ellenőrizze a telepítést

a telepítés befejezése után ellenőrizheti, hogy a sendmail képes-e üzeneteket továbbítani., Írja be az alábbi kódot a terminálba:

 echo "Subject: hello" | sendmail [email protected]

el kell küldenie az e-mailt, ha minden megfelelően működik. Itt a"hello" karakterlánc asendmail parancsra lesz rögzítve, míg a megadott e-mail cím természetesen az e-mail címzettje.

futtatja a parancsot… és hoppá: sendmail: Cannot open mailhub:25. Ennek oka az, hogy egyáltalán nem adtuk meg a mailhub beállításait. Az üzenetek továbbításához szükség van egy konfigurált SMTP kiszolgálóra., Ez az, ahol az SSMTP nagyon jól teljesít: csak egyszer kell szerkesztenie a konfigurációs fájlt, és jó menni.

4. lépés. Konfigurálása SSMTP

nézzük keresse meg a konfigurációs fájl /etc/ssmtp/ssmtp.conf. Itt az alábbi kódot kell megadnia az SMTP relé konfigurálásához:

Ez azt jelenti, hogy olyan külső szolgáltatást állít be, amely ténylegesen továbbítja az e-maileket
. Amikor például hitelesítő adatokat ad meg a Gmailnek, a postafiók “Elküldött levelek” könyvtárában láthatja a terminálról küldött üzeneteket. A konfigurációk hasonlóak a többi szolgáltatáshoz is.,

Ez volt asendmail alapkonfigurációja, valamint a gyakran használt parancssori mailer csomag telepítési lépései. Ezután ugrik a Telepítés, majd próbálja ki a különböző egyéb csomagok.

e-mail küldése az ssmtp paranccsal

Ez egy szép kis eszköz, amelyet csak a postai kézbesítéshez konfiguráltunk. Ahogy aman oldal sugallja, ez a sendmailminimalista emulátor. Mint ilyen, az SSMTP lehetővé teszi a felhasználók számára, hogy az SMTP kiszolgálón keresztül továbbítsák az e-maileket a Linux parancssorból., Ez biztosítja az eszközöket, hogy csatlakozzon a mailhub egy megfelelő konfigurációs fájlt. Ha a konfigurációs fájlt helyesen állította be, akkor a parancssori e-mail küldésével kapcsolatos összes aggodalom eltűnik.

az Sstmp parancs alapvető végrehajtása:

Ha csak az SSMTP-t használja, a parancsnak a következőképpen kell kinéznie:

 ssmtp [email protected] < mail.txt

a ssmtp parancsot követve tegye a címzett címét, akkor tartalmazhat egy fájlt, amely megjelenik az e-mail testben. Itt megadhatja az üzenet fejléceit, felsorolhatja a további címzetteket, majd beállíthatja a tartalom típusát., Így HTML e-maileket küldhet. Az ssmtp értelmezi az üzenetet, és megfelelően használja a megadott értékeket. Itt van egy példa egy HTML küldhet:

nem igazán ad további lehetőségeket SSMTP mivel nem tartják tiszteletben a minimalista design.

hibaelhárítás:

abban az esetben, ha a parancssorban a következő hibába ütközik:

Ez valószínűleg azért van, mert a Gmail nem kezeli az SSMTP-t biztonságos alkalmazásként. Ahhoz, hogy megszabaduljon ettől a hibától, meg kell változtatnia a beállításokat a Gmail – fiókjában-további információkat kereshet a lehetséges kockázatokról is.,

e-mail küldése a Sendmail parancs segítségével

már jó ideje a sendmail a UNIX világának klasszikus levélátviteli ügynöke. Először 1979-ben mutatták be, és jól konfigurálható jellege és skálázhatósága miatt ez lett az alapértelmezett go-to a szerver adminisztrátorok számára.,

már láttuk, hogyan küldhetünk alapvető e-maileket a ssmtp parancs segítségével, tehát nézzük meg a különbséget a sendmail:

 echo "Subject: hello" | sendmail -v [email protected] < mail.txt

bedobtam a argumentum, amely láthatóvá teszi a levelezőszerver és a levélátviteli ügynök közötti kommunikációt.

rengeteg konfigurációt lehet használni, ha beállítja a saját levelező szerver és végre sendmail rajta. Ez azonban nem tartozik e cikk hatálya alá. Visszatérünk a témához egy közelgő témában. Maradjanak velünk.,

e-mail küldése CURL paranccsal

Ez az eszköz rendkívül gyakori a szerverről történő adatátvitelhez. Számos protokollt támogat, például HTTP, FTP, POP3 vagy SMTP. A CURL csomagot széles körben használják szerte a világon, ennek egyik fő oka az, hogy natív PHP implementációval rendelkezik, a PHP pedig hosszú ideig az alapértelmezett szerver oldali szkriptnyelv volt.

telepítés:

ellenőrizze, hogy a csomag már telepítve van-e., Ha nem futtatja az alábbiakat:

 sudo apt install curl

Ha elkészült, a curl -hfuttatásával elérheti a curl elérhető opcióit. A részletesebb verzió elérhető a man curl vagy curl --manual. Ha azt szeretnénk, hogy szert mélyreható tudás segítségével cURL, van ez a praktikus Ebook, amely mindent tartalmaz, amit valaha is szeretné tudni.

alapvető végrehajtása e-mail küldés CURL:

annak érdekében, hogy küldjön egy e-mailt CURL, be kell állítani SMTP kapcsolat., Leggyakrabban a Google vagy a Yahoo kimenő e-mail szervereit használják az SMTP-vel történő e-mail küldés tesztelésére. Kérjük, vegye figyelembe, hogy be kell kapcsolnia a hozzáférést a kevésbé biztonságos alkalmazásokhoz a Gmail beállításaiban, valamint hasonló további biztonsági beállítások is alkalmazhatók a Yahoo-ra.

a fenti parancsrészletben a --urlés --user paraméterek határozzák meg az SMTP kapcsolat beállításait. A --user paraméter jelszó szakasza a fiókod jelszava az adott e-mail címhez. Természetesen felhőalapú e-mail szolgáltatókat is használhat., Megmutatom, hogy a Mailgun a következő részben.

speciális végrehajtás az e-mail küldéshez CURL:

az e-mail kézbesítési platformokkal való munka során először API kulcsot kell beszereznie. Ebben a bemutatóban megmutatom a CURL e-mail küldési példát a Mailgun használatával, tehát ha elakad a regisztrációs folyamat során, kövesse ezt a beállítási útmutatót, hogy a helyes úton haladjon.

a szintaxis nagyon egyszerű. Lehet, hogy korábban észrevette, de a parancs minden sorát \ karakterekkel kell befejeznie., Ez egy sor folytatása karakter, a parancs futtatható nélkülük minden egy sorban is. A másik dolog, hogy emlékezzen a -F opció. Kivonat a man oldalról:

 -F, --form <name=content> (HTTP) This lets curl emulate a filled-in form in which a user has pressed the submit button. This causes curl to POST data using the Content-Type multipart/form-data according to RFC 2388. This enables uploading of binary files etc. To force the 'content' part to be a file, prefix the file name with an @sign.

ahogy korábban bátorítottam, ez egy jó gyakorlat, hogy belemerüljön a kézikönyvekbe, amikor ezeket a parancssori mailer parancsokat használja. Ahogy a CURL kézikönyv mondja, alapvetően létrehoz egy űrlapot, amelyet elküldhet. Minden sor egy name=content párként megadott bejegyzés. Amikor fájlokat csatol a helyi gépről, szüksége van egy @ a fájlnév előtt.,

így fog kinézni a kézbesített e-mail:

ugyanezt teheti a többi e-mail kézbesítési platform többségével, például a Sendgrid segítségével.

HTML e-mail küldése a parancssorból CURL:

ugyanazt a logikát alkalmazhatja egy űrlap szöveges fájlban történő felépítésére, amely lehetővé teszi HTML üzenetek egyszerű küldését:

Ha az első példából futtatja az egyszerű parancsot…

hibaelhárítás:

szükség lehet a --insecure kapcsolóra, amely lehetővé teszi a CURL számára, hogy “nem biztonságos” SSL kapcsolatokat és transzfereket hajtson végre., A CURL hibaüzenetet küld, ha a távoli kiszolgáló önaláírt tanúsítványt használ, vagy ha a távoli kiszolgáló tanúsítványát nem írja alá a CA cert fájlban felsorolt CA.

e-mail küldése Swaks paranccsal

mivel dokumentációjuk kimondja, a Swaks egy rugalmas, szkriptálható, tranzakció-orientált SMTP teszt eszköz. Képes kezelni SMTP funkciók és kiterjesztések, mint a TLS, hitelesítés, és pipelining és több változata SMTP protokollok. Több szállítási módot is támogat, beleértve a UNIX-domain aljzatokat, az internet-domain aljzatokat, valamint a csöveket az ívott folyamatokhoz.,

telepítés:

 sudo apt install swaks

alapvető végrehajtás az e-mail küldéshez Swaks:

egy SMTP-fiókhoz való csatlakozáshoz meg kell adnia a kiszolgálót -s, a felhasználó -au, A jelszó -ap és a -t (ahol e-mailt szeretne küldeni) zászlók. A-tls zászló akkor is fontos, ha a587porton csatlakozik.,

 swaks --to [email protected] -s smtp.gmail.com:587 -tls -au <user-account> -ap <account-password>

a hitelesítő adatok parancssori utasításokon keresztül is megadhatók, ha csak a -a hitelesítéséhez adja meg, nem tölti ki a felhasználót és a jelszót parancssori beállításokon keresztül.

Advanced implementation for email sending with Swaks:

 swaks --to [email protected] -s smtp.gmail.com:587 -tls -au <user-account> -ap <account-password> --attach -d ./mail.txt

vannak más lehetőségek, amelyeket most nem fogunk megérinteni. Menjünk a következő levelező csomagunkhoz!

e-mail küldése a Mutt parancs segítségével

Mutt különbözik az előző e-mail kliensektől, mivel ez egy funkciókban gazdag parancssori e-mail kliens., Használhatja e-mailek olvasására a Linux terminálról, csatlakozva a helyi felhasználói postafiókokhoz vagy a POP/IMAP szerverekhez. A Mutt számos postafiók formátumot támogat, mint például az mbox, az MH, a maildir, az MMDF, az üzenetfejlécek teljes ellenőrzése az e-mail összetétel során, valamint több üzenet címkézése és színek az üzenetek kezeléséhez.

telepítés:

 sudo apt install mutt

alapvető végrehajtása e-mail küldés mutt:

Ez idő alatt nem fog lepődni a szerkezet a parancs., Megadhat egy üres üzenet test < /dev/null:

# mutt -s "Test Email" [email protected] < /dev/null

speciális végrehajtása e-mail küldés mutt:

az e-mail küldéséhez, beleértve a mellékleteket, akkor szükség van a -a zászló. Így hasznos fájlokat, például rendszernaplókat küldhet egy megadott címre.

# mutt -s "System logs" -a /opt/backup.sql [email protected] < /dev/null

HTML e-mailt is küldhet, ha az üzenet törzséhez hozzáadott fájlkiterjesztés HTML formátumban van., A Mutt felismeri a fájltípust, és megoldja, így nem küldi el a HTML-t egyszerű szövegként:

mutt -s "Email subject" [email protected] < email.html

Ez az e-mail küldés a mutt-vel. Ha van a gépen, azt javaslom, hogy próbálja ki, hogyan tud dolgozni a bejövő konfigurálása a postafiók kezelése bejövő üzeneteket. Ha így tesz, kérjük, ossza meg gondolatait az alábbi megjegyzés szakaszban. Üdvözlöm a bemutatóban bemutatott csomagokkal kapcsolatos véleményeket.

e-mail küldése a Mailx paranccsal

a Mailutils összetett csomag több felhasználási esethez., Úgy tervezték, hogy szolgálja a rendszeres felhasználók, rendszergazdák, Fejlesztők. Csak az e-mail továbbítással kapcsolatos alapvető funkcióit fogjuk megérinteni. Ha további funkciók iránt érdeklődik, nézze meg a man oldalát.

telepítés:

 sudo apt install mailutils

alapvető végrehajtása e-mail küldés mailx:

a mailx csomag 2 egyenlő parancs szintaxis (mail és mailx mindkettő pontosan ugyanúgy működik)., A legegyszerűbb parancs amail/mailx parancsból és az e-mail címből áll, de valószínűleg magában foglalja a témát és legalább néhány szöveg alapú üzenettestet. Egy ilyen parancsnak így kell kinéznie:

 echo "message body" | mail -s "subject" [email protected]

a echo parancs használatával a kimenetet a mail parancsra továbbíthatja, így elkerülheti a mailx további utasításait a Cc címekre és az üzenet törzsére.,

Advanced implementation for email sending with mailx:

a speciális példa, küldünk egy teljes értékű HTML e-mailt újra. Meg kell adnunk a választott e-mail HTML fájlt a < karakterrel, majd hozzá kell adnunk a “csatolási zászlót” a tartalom típusához. A teljes kód a következőképpen néz ki:

 mailx -a 'Content-Type: text/html' -s "This is advanced mailx indeed!" < email.html "[email protected], [email protected]"

a --return-address=<EMAIL-ADDRESS> visszatérési címet is beállíthatja, amely hasznos lehet., Egy másik hasznos lehetőség, amelyet nem tudtam megoldani a HTML e-mail párhuzamos használatával, az, hogy csatolmányokat biztosítsunk ugyanabban az üzenetben: -A "mail.txt". Bár több címzettet is felsorolhat,csak egyetlen melléklet csatolható. Konfigurálhatja a külső SMTP kiszolgálót, ha ez tetszik.

A Telnet alternatív Openssl parancs használata

a Telnet egy interaktív kommunikációs protokoll egy másik gazdagéppel való kommunikációhoz. Ezt fel lehet használni, hogy nyissa meg az SMTP kapcsolatot egy másik szerverre, és át e-mail üzeneteket., Mivel azonban a protokoll nincs biztosítva, a legtöbb szerver elutasítja ezt a kommunikációs típust. Ez az, ahol az Openssl bekerül a képbe, mivel SSL / TLS biztonságot tartalmaz. Ez hivatkozni hasonlóan a telnet egy fogadó érv, valamint ellátja a nyílt parancs implicit módon:

én tagolt a bemenetek meg kell adnia, miközben a kommunikációs csatorna nyílt. Ezek a bemenetek magától értetődő, de egy dolog, amit meg kell részletezni a jelszó hash. Ez lehet egy base64 kódolt hash, amely a következő paranccsal érhető el: echo -en '\[email protected]\000gmailpassword' | base64., A karakterlánc menekülési karakterei nem hagyhatók ki. Ha nincs telepítve a base64 csomag, akkor a csomagkezelőkön keresztül érhető el.

mint fent látható, ez az e-mail küldés csak szöveges üzenetek felületét biztosítja, ezért korlátozza a használati eseteket. Másrészt megmutatja az e-mail szerverrel kicserélt összes információt, ami nagyon egyszerűvé teszi a hibakeresést.

hibaelhárítás Mail problémák

ellenőrizze a mail naplók

meg kell, hogy keresse meg a log fájlt navigálva a megfelelő mappába. Inkább a kódszerkesztőt használom (pl., Sublime Text) ehhez, így lehet, hogy a naplók szintaxis kiemelés:

$ sudo subl /var/log

attól függően, hogy a jelenlegi Linux disztribúció akkor lehet, hogy nézd meg a különböző forrásból.
a napló hasznos információkat tartalmazhat a szállíthatósági problémákról. Ezen a ponton, amikor ennek aljára lép:

ellenőrizheti, hogy a szállítás sikeres-e, vagy megértheti, miért nem sikerült a folyamat.,
előfordulhat, hogy a konzol nem mutat hibát, de a levélnaplóban láthatja, hogy az üzenet sorba került a kézbesítéshez, így a folyamat nem állt meg a gépen, de valószínűleg az elérni kívánt levelezőszerver megtagadta.

az összes parancs futtatása

sorrendben tehát minden készen áll a végső tesztre. Az összes mailer terminálparancsot itt gyűjtjük össze egy szkriptfájlban. Miután letöltötte a munkamappát a benne lévő szkriptfájllal, keresse meg a tartalmazó mappát, majd hajtsa végre a szkriptet: chmod u+x mail.sh., Ha készen áll az összes általam megadott fájl, elkezdheti tesztelni a bemutatóban látható mailer parancsokat. Csak ki kell cserélnie a"<RECIPIENT ADDRESS>" a teszt e-mail címét a kódban, majd futtassa a./mail.sh parancsot a parancssorban.

miután a szkript befejeződött, a beérkező levelek kitöltésre kerülnek a teszt e-mailekkel.

jól sikerült!

összefoglaló

ebben a cikkben számos módot mutattam be e-mail küldésére a Linux parancssorból. Remélhetőleg a látottak alapján Ön is telepítheti és konfigurálhatja ezeket a szolgáltatásokat a gépére.,

a bejegyzés a leggyakrabban használt parancssori levelező csomagokat, valamint az e-mailek küldésének módját mutatta be velük, végül létrehoztam egy shell szkriptet, amely összegyűjti a cikkben használt összes parancsot. Letöltheti a projektek dolgozó fájlokat itt, és ha telepíti a csomagokat bevezetett bemutató, valamint töltse ki a hitelesítő adatokat, valamint a címzett adatait, akkor futtassa a script a szabadidő.

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük