Olipa olet kehittäjä, työ non-stop Linux-komentoriviltä tai palvelimen ylläpitäjä haluaa lokit tai muut tiedot uutetaan antaa järjestelmissä, tietäen miten lähettää sähköpostia komentoriviltä on suuresti hyötyä.
tästä postauksesta löydät esimerkkejä siitä, miten voit lähettää sähköpostia päätteestä. Tarkastelemme mukautettuja kokoonpanoja ja otamme yhteyttä SMTP-yhteyksien luomiseen sähköpostitileille tai sähköpostipalvelujen tarjoajille., Näytän, miten tarvittavat konsoliposteripaketit asennetaan ja taustoitetaan komentorivivaihtoehdot paketin käyttöohjeiden perusteella.
Setting Up Command Line Mailer Paketit
Kaikki mailer paketteja koko opetusohjelma ovat saatavilla Debianin Advanced Package Manager, joten asennuksen vaiheet alla olevassa esimerkissä voidaan käyttää kaikkien esiteltiin paketteja.,
huomaa, että nämä kappaleet ohjelmisto voidaan asentaa muita oletuksena paketti johtajat, kuten yum
tai dnf
riippuen Linux-jakelu.
useimmissa tapauksissa joko sendmail
tai postfix
on käytettävissä kaikissa Linux-jakelu, out-of-the-box, tai ainakin se mitä vastaavat blogikirjoituksia sanoa. Joko olen epäonninen tai muut olivat väärässä, mutta jouduin asentamaan sen manuaalisesti. Kuitenkin, tarvitset varmasti yksi niistä sähköpostin toimitukseen.,
Määrittäminen Sendmail kanssa SSMTP Paketti
olen edelleen sendmail
ja SSMTP paketti. SSMTP sisältää sendmail
paketti konepellin alle, koska näet, ja se helpottaa kokoonpano, joka on melko vaikea sendmail
muuten.
Vaihe 1., Tarkistaa, jos Command Line Mailer Paketti on Asennettu,
Kirjoita mailer paketin nimi vain tapa suorita komento, tarkista jos se on saatavilla:
-
Jos paketti on asennettu, komento toimii, ja pikaista muutokset — kun yrittää suorittaa komennon — ja näet vilkkuva kohdistin seuraa viesti
Recipient names must be specified
tapauksessasendmail
. Johtopäätös: paketti on asennettu., -
Jos paketti ei OLE asennettu, näyttöön tulee varoitus ja ehdotuksia, miten asentaa sen:
tässä esimerkissä, olen kokeillut jos sendmail
– komento toimii. Kun lisäämme SSMTP paketti, tämä komento ja ssmtp
komento sekä työn ja muuttaa komentoriviltä terminaalin. Katsotaanpa sitä!
Vaihe 2., Asentaminen Sendmail Command Line Mailer Paketti
Kuten terminal tuotos ehdotti, meidän täytyy ajaa Advanced Package Manager asentaa command — yleensä root lupaa — voit asentaa tarvittavat paketti. Kuten edellä mainittiin, kokoonpanot ovat paljon yksinkertaisempi sendmail
kun abstrakti pois monimutkaisuus kokoonpano. Se voidaan tehdä SSMTP:
sudo apt install ssmtp
Vaihe 3. Vahvista Asennus
Kun asennus on suoritettu, voit tarkistaa, jos sendmail
pystyy välittämään viestejä., Kirjoita alle koodi terminaali:
echo "Subject: hello" | sendmail [email protected]
Se pitäisi lähettää pois sähköpostitse, jos kaikki toimii oikein. Täällä "hello"
string johdetaan sendmail
komento tehdään lähetetty viesti, kun määritelty sähköpostiosoite on luonnollisesti vastaanottajan sähköpostiosoite.
suoritat komennon… ja, hups: sendmail: Cannot open mailhub:25
. Syy tähän on se, että emme antaneet mailhub-asetuksia lainkaan. Viestien välittämiseen tarvitaan SMTP-palvelin., Siinä missä SSMTP toimii todella hyvin: sinun tarvitsee vain muokata sen asetustiedosto kerran, ja olet hyvä mennä.
Vaihe 4. Ssmtp: n määrittäminen
etsitään config-tiedosto /etc/ssmtp/ssmtp.conf
. Tässä, sinun pitäisi laittaa koodi alla määrittää SMTP rele:
tämä tarkoittaa, että perustat ulkoisen palvelun, joka todella eteenpäin
sähköpostit. Kun annat valtakirjan Gmail esimerkiksi, näet viestit lähetetään terminaalin postilaatikkoon on ’Lähetetyt’ – hakemistoon. Kokoonpanot näyttävät samanlaisilta myös muiden palveluiden kanssa.,
– Tämä oli perus kokoonpano sendmail
ja asennus vaiheet kaikki usein käytetyt command line mailer paketti. Seuraavaksi hyppäämme asentamaan ja kokeilemaan erilaisia muita paketteja.
Lähettäminen Sähköpostiin SSMTP Komento
Tämä on mukava pieni työkalu, me vain määritetty mail toimitus. Kuten sen man
sivun, ehdottaa, se on minimalistinen emulaattori sendmail
. Ssmtp: n avulla käyttäjät voivat siirtää sähköposteja SMTP-palvelimen kautta Linux-komentoriviltä., Se tarjoaa keinot muodostaa yhteyden mailhub oikea asetustiedosto. Jos config-tiedosto on perustettu oikein,kaikki komentorivin sähköpostin lähettämistä koskevat huolesi voivat kadota.
Perus Täytäntöönpanoa SSTMP komento:
Jos käytät vain SSMTP, komennon pitäisi näyttää seuraavalta:
ssmtp [email protected] < mail.txt
Seuraava ssmtp
komento, sinun pitäisi laittaa vastaanottajan osoite, niin voit sisällyttää tiedoston, joka näkyy sähköpostin kehon. Täällä voit määritellä viestin otsikoita, luetella lisää vastaanottajia ja asettaa sisältötyypin., Näin voit lähettää HTML-sähköposteja. SSMTP tulkitsee viestisi ja käyttää annettuja arvoja oikein. Tässä on esimerkki HTML-et voi lähettää:
Et voi todella antaa lisää vaihtoehtoja SSMTP, koska ne eivät ole noudattaneet sen minimalistinen muotoilu.
Vianmääritys:
jos et törmätä seuraava virhe komentorivillä:
että on todennäköistä, koska Gmail ei kohtele SSMTP turvallinen sovellus. Päästä eroon tämän virheen, sinun täytyy muuttaa asetuksia Gmail-tilin – voit etsiä lisää tietoa mahdollisista riskeistä siellä hyvin.,
Lähettää Sähköpostia Käyttäen Sendmail-Komento
Jo jonkin aikaa nyt sendmail on klassisen mail transfer agent maailman UNIX. Se esiteltiin ensimmäisen kerran vuonna 1979, ja sen erittäin konfiguroitavissa oleva luonne ja skaalautuvuus tekivät siitä palvelinten ylläpitäjien oletusarvon.,
– Olemme jo nähneet, miten lähettää perus sähköpostit ssmtp
komento, joten katsotaanpa ero käyttäen sendmail
:
echo "Subject: hello" | sendmail -v [email protected] < mail.txt
heitin -v
argumentti, mikä tekee välinen viestintä sähköpostipalvelin ja mail transfer agent näkyvissä.
kokoonpanoja on paljon, joita voit käyttää, jos perustat oman sähköpostipalvelimen ja toteutat sendmailin sillä. Tämä ei kuitenkaan kuulu tämän artiklan soveltamisalaan. Palaamme aiheeseen tulevassa. Pysy kuulolla.,
sähköpostin lähettäminen CURL-komennolla
Tämä työkalu on myös valtavan yleinen tiedonsiirtoon palvelimelta. Se tukee monia protokollia, kuten HTTP, FTP, POP3 tai SMTP. CURL-pakettia käytetään laajalti ympäri maailmaa, yksi pääsyy on, että sillä on natiivi PHP-toteutus ja PHP oli oletuksena palvelimen puolella skriptauskieli pitkään.
asennus:
tarkista, onko paketti jo asennettu., Jos ei suorita alla:
sudo apt install curl
Kun olet valmis, voit käyttää lunttilappua saatavilla vaihtoehtoja CURL käynnissä curl -h
. Yksityiskohtaisempi versio on saatavilla joko man curl
tai curl --manual
. Jos haluat saada syvällistä tietoa käyttämällä cURL, on tämä kätevä Ebook, joka sisältää kaiken, mitä ikinä haluat tietää.
Perustoteutus sähköpostin lähettämiseen kiharalla:
lähettääksesi sähköpostia kiharalla, sinun täytyy perustaa SMTP-yhteys., Useimmiten Googlen tai Yahoon lähteviä postipalvelimia käytetään sähköpostin lähettämisen testaamiseen SMTP: llä. Huomaa, että sinun pitää ottaa yhteys vähemmän turvalliset sovellukset-Gmail-asetuksia ja vastaavia muita tietoturva-asetuksia voi hakea Yahoo samoin.
terminaalissa komento-koodinpätkän edellä, --url
ja --user
parametrit määritettävä SMTP-yhteysasetukset. --user
– parametrin salasana on tilisi salasana annettuun sähköpostiosoitteeseen. Luonnollisesti voit myös käyttää pilvipalvelujen tarjoajia., Näytän sen Mailgunin avulla seuraavassa jaksossa.
Lisäasetukset täytäntöönpano sähköpostin lähettämisen CURL:
Työskentely sähköpostin toimitus alustat, sinun on ensin saada API-avain. Tässä opetusohjelmassa, minä näytän CURL sähköpostin lähettäminen esimerkiksi käyttämällä Mailgun, joten jos saat kiinni rekisteröinnin aikana, noudata tämä asennusopas saada oikealla tiellä.
syntaksi on melko suoraviivainen. Olet ehkä huomannut aiemmin, mutta sinun on lopetettava komennon jokainen rivi \
merkillä., Tämä on rivin jatkaja merkki, komento voidaan suorittaa ilman niitä kaikkia yhdellä rivillä samoin. Toinen muistettava asia on -F
– vaihtoehto. Ote man-sivu:
-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.
Kuten olen rohkaissut ennen, se on hyvä käytäntö sukeltaa käsikirjat kun käytät näitä command line mailer komentoja. Kuten CURL manual sanoo, pohjimmiltaan luot lomakkeen lähettää. Jokainen rivi on merkintä, joka annetaan name=content
parina. Kun liität tiedostoja paikallisen koneen, tarvitset @
edessä tiedoston nimi.,
Tämä on miten toimitetaan sähköpostitse näyttää:
Voit tehdä saman käyttäen useimmat muut sähköpostin toimitus alustoilla, kuten Sendgrid esimerkiksi.
Lähettää HTML email komentoriviltä CURL:
Voit soveltaa samaa logiikkaa rakennuksen muoto tekstitiedosto, jonka avulla voit lähettää HTML-viestejä helposti:
Jos et suorita yksinkertainen komento ensimmäinen esimerkki…
Vianmääritys:
saatat tarvita --insecure
kytkin, jonka avulla CURL suorittaa ”epävarma” SSL-yhteydet ja siirrot., CURL palauttaa virheilmoituksen, jos kauko-palvelin käyttää itse allekirjoitettua varmennetta, tai jos kauko-server certificate ei ole allekirjoittanut CA lueteltu CA cert-tiedoston avaamiseen.
Lähettää Sähköpostia Käyttäen Swaks komento
Koska niiden asiakirjat todetaan, Swaks on joustava, koodattavissa, kauppa-suuntautunut SMTP-test tool. Se pystyy käsittelemään SMTP ominaisuuksia ja laajennuksia, kuten TLS-todennus, ja pipelining ja useita versio SMTP-protokollia. Se tukee myös useita liikenteen menetelmiä, kuten UNIX-domain pistorasiat, internet-domain pistorasiat ja putket poikinut prosesseja.,
Asennus:
sudo apt install swaks
Perus täytäntöönpanoa sähköpostin lähettämisen Swaks:
, jotta yhteyden SMTP-tilin, sinun täytyy antaa palvelimen -s
käyttäjä -au
, salasana -ap
osoite -t
(jos haluat lähettää sähköpostin) liput. -tls
lippu on myös tärkeää, jos yhdistät port 587
.,
swaks --to [email protected] -s smtp.gmail.com:587 -tls -au <user-account> -ap <account-password>
valtakirjojen voidaan antaa myös komentorivin kautta ohjeita, jos vain määrittää todentamaan -a
, ei täyttämällä käyttäjä ja salasana komentoriviltä vaihtoehtoja.
Lisäasetukset täytäntöönpano sähköpostin lähettämisen Swaks:
swaks --to [email protected] -s smtp.gmail.com:587 -tls -au <user-account> -ap <account-password> --attach -d ./mail.txt
On olemassa muita vaihtoehtoja, joita meidän ei kosketa nyt. Mennään seuraavaan postittajapakettiin!
sähköpostin lähettäminen Mutt-komennolla
Mutt eroaa aiemmista sähköpostiohjelmista, sillä kyseessä on ominaisuusrikas komentorivisähköpostiohjelma., Voit käyttää sitä sähköpostien lukemiseen Linux-päätteestä, yhteyden liittämiseen paikallisiin käyttäjien postilaatikoihin tai POP/IMAP-palvelimiin. Mutt tukee useita postilaatikko formaatteja, kuten mbox, MH, maildir, MMDF, täyden määräysvallan viestin otsikot aikana sähköpostia koostumus, ja useita viestin merkitseminen ja värit käsitellä viestejä.
Asennus:
sudo apt install mutt
Perus täytäntöönpanoa sähköpostin lähettämisen mutt:
tällä kertaa sinun ei tarvitse olla yllättynyt rakenne-komento., Voit antaa tyhjä viesti keholle < /dev/null
:
# mutt -s "Test Email" [email protected] < /dev/null
Lisäasetukset täytäntöönpano sähköpostin lähettämisen mutt:
lähettää sähköpostia liitteineen, tarvitset -a
lippu. Näin voit lähettää hyödyllisiä tiedostoja, kuten järjestelmälokit, tiettyyn osoitteeseen.
# mutt -s "System logs" -a /opt/backup.sql [email protected] < /dev/null
Voit myös lähettää HTML email, jos tiedostopääte voit lisätä viestin teksti on HTML-muodossa., Mutt tunnistaa tiedoston tyyppi ja ratkaista sen, joten se ei voi lähettää HTML-tekstinä:
mutt -s "Email subject" [email protected] < email.html
Tämä on se sähköpostin lähettämisen rakki. Jos sinulla on se koneessasi, ehdotan kokeilla, miten voit työskennellä saapuvan määrittää postilaatikon ja käsitellä saapuvia viestejä. Jos teet niin, kerro ajatuksesi alla olevassa kommenttiosiossa. Suhtaudun myönteisesti kaikkiin mielipiteisiin opetussuunnitelmassa esitetyistä paketeista.
Lähettäminen Sähköpostiin Mailx-Komento
Mailutils on yhdiste, paketti useita käyttötapauksia., Se on suunniteltu palvelemaan säännöllisiä käyttäjiä, järjestelmänvalvojia ja kehittäjiä. Käsittelemme vain sen perustoimintoja koskien sähköpostin välittämistä. Jos olet kiinnostunut lisää ominaisuuksia, katso sen man
sivu.
Asennus:
sudo apt install mailutils
Perus täytäntöönpanoa sähköpostin lähettämisen mailx:
mailx paketti on 2 tasa-komennon syntaksi (mail
ja mailx
molemmat toimivat täsmälleen samalla tavalla)., Kaikkein yksinkertainen komento koostuu mail/mailx
komento ja osoite, lähetä sähköpostia, mutta olet luultavasti ovat aihe ja ainakin jotkut teksti-pohjainen viestin runko. Tällaisen komennon pitäisi näyttää tältä:
echo "message body" | mail -s "subject" [email protected]
käyttäen echo
komento ja putkisto lähtö mail
komento, voit välttää mailx on lisää ohjeita Cc-osoitteet ja viestin runko.,
edistynyt toteutus sähköpostin lähettämiseen mailx:
advanced example, lähetämme täysimittaisen HTML-sähköpostin uudelleen. Meidän täytyy antaa sähköpostitse HTML-tiedoston meidän valinta <
merkki ja lisää ”append lippu” sisällön tyyppi. Koko koodi näyttää seuraavalta:
mailx -a 'Content-Type: text/html' -s "This is advanced mailx indeed!" < email.html "[email protected], [email protected]"
Voit myös määrittää lähettäjän osoite, jossa --return-address=<EMAIL-ADDRESS>
, joka voi olla hyödyllistä., Toinen hyödyllinen vaihtoehto, jota en voinut ratkaista työskennellä HTML email rinnakkain, on tarjota liitteet sama viesti: -A "mail.txt"
. Vaikka voit luetella useita vastaanottajia,vain yksi liite voidaan liittää. Voit määrittää ulkoisen SMTP-palvelimen, jos se miellyttää sinua.
Käyttämällä Telnet-Vaihtoehto Openssl Komennot
Telnet on interaktiivinen viestintä-protokollaa, jossa toinen isäntä. Sitä voitaisiin käyttää SMTP-yhteyden avaamiseen toiselle palvelimelle ja sähköpostiviestien siirtämiseen., Koska protokollaa ei kuitenkaan ole suojattu, useimmat palvelimet hylkäävät tämän viestintätyypin. Tässä vaiheessa Openssl tulee kuvaan, koska se on rakennettu SSL/TLS-suojauksella mukana. Se on vedonnut myös telnet isäntä argumentti, ja se suorittaa avoimen komento epäsuorasti:
olen sisennetty tulot sinun täytyy antaa, kun viestinnän kanava on auki. Nämä tulot ovat itsestään selviä, mutta yksi asia minun täytyy yksityiskohtaisesti on salasana hash. Se voi olla Base64-koodattu hasis, jonka saa seuraavalla komennolla: echo -en '\[email protected]\000gmailpassword' | base64
., Merkkijonon pakohahmoja ei voi jättää pois. Jos base64-pakettia ei ole asennettu, se on saatavilla pakettijohtajien kautta.
kuten yllä näkyy, tämä sähköpostin lähettämisen keino tarjoaa rajapinnan vain tekstipohjaisille viesteille, joten sillä on rajoituksensa käyttötapauksissa. Toisaalta se näyttää kaikki postipalvelimen kanssa vaihdetut tiedot, mikä tekee virheenkorjauksen todella helpoksi.
Vianmääritys Mail Ongelmia
Tarkista sähköpostin lokit
Sinun täytyy etsiä loki-tiedosto siirtymällä vastaavaan kansioon. Käytän mieluummin koodieditoriani (esim., Sublime Text), joten en voi olla lokit syntaksin korostus:
$ sudo subl /var/log
Riippuen nykyisen Linux-jakelu, sinun täytyy ehkä tarkastella eri lähteestä.
loki voi sisältää hyödyllistä tietoa luovutettavuusongelmista. Tässä vaiheessa, kun vierität tämän alareunaan:
voit tarkastaa, onnistuuko toimitus tai ymmärtää, miksi prosessi epäonnistui.,
Se voi tapahtua, että konsoli osoittaa virheitä, mutta postissa loki voit nähdä, että viesti oli jonossa toimitus, joten prosessi ei voi pysäyttää koneen, mutta luultavasti oli evätty mail server yritit tavoittaa.
käynnissä Kaikki komennot järjestyksessä
joten kaikki on valmista lopputestiin. Kaikki mailer terminal-komennot on koottu tähän komentosarjatiedostoon. Kun olet ladannut töitä kansioon, jossa skripti on tiedosto, siirry kansio ja tehdä käsikirjoituksen suoritettavan: chmod u+x mail.sh
., Jos sinulla on kaikki antamani tiedostot valmiina, voit alkaa testata opetussuunnitelmassa esitettyjä mailer-komentoja. Sinun tarvitsee vain korvata "<RECIPIENT ADDRESS>"
teidän testi sähköpostiosoite koodin ja ajaa ./mail.sh
komentorivi.
kun skripti on käynnissä, postilaatikkosi täytetään testisähköposteilla.
hyvin tehty!
Yhteenveto
tässä artikkelissa näytin monia tapoja lähettää sähköpostia Linux-komentoriviltä. Toivottavasti, näkemäsi perusteella, voit asentaa ja määrittää nämä palvelut koneeseesi myös itse.,
post osoitti, että yleisimmin käytetty command line mailer paketteja ja miten lähettää sähköposteja niitä, ja lopulta, olen luonut shell-skripti, joka kerää kaikki komennot käytetään artikkelissa. Voit ladata hankkeissa työskentelee tiedostoja täällä, ja jos asennat paketit käyttöön opetusohjelma ja myös täytä käyttäjätiedot ja vastaanottajan tiedot, voit suorittaa komentosarjan rauhassa.