Welcome to Our Website

16 Exemple de Comandă pentru a Trimite e-Mail De la Linia De Comandă Linux

Dacă sunteți un dezvoltator care lucrează non-stop în linia de comandă Linux sau un administrator de server doresc busteni sau alte date extrase din administrează sisteme, știind cum să trimiteți e-mail de la linia de comandă este foarte utilă.

în această postare, vei găsi exemple despre cum să trimiți e-mailuri de la terminal. Vom analiza configurațiile personalizate și vom atinge modul de configurare a conexiunilor SMTP la conturile de e-mail sau la furnizorii de servicii de e-mail., Vă voi arăta cum să instalați pachetele de consolă mailer necesare și să oferiți fundal pentru opțiunile liniei de comandă bazate pe manualele pachetului.

Configurarea pachetelor Mailer de linie de comandă

toate pachetele mailer de-a lungul tutorialului sunt disponibile prin Debian ‘ s Advanced Package Manager, astfel încât pașii de instalare din exemplul de mai jos pot fi folosiți pentru toate pachetele prezentate.,

vă Rugăm să rețineți că aceste bucăți de software-ul poate fi instalat de către alte default managerii de pachete, cum ar fi yum sau dnf în funcție de Linux sistemul de distribuție.

În cele mai multe cazuri, fie sendmail sau postfix este disponibil în fiecare distributie de Linux out-of-the-box sau cel puțin asta e ceea ce similară blog spune. Fie că sunt ghinionist, fie că ceilalți au greșit, dar a trebuit să instalez unul manual. Cu toate acestea, cu siguranță aveți nevoie de unul dintre ele pentru livrarea prin e-mail.,

crearea Sendmail cu SSMTP Pachet

voi continua cu sendmail și SSMTP pachet. SSMTP conține sendmail pachetul sub capota, după cum veți vedea și facilitează configurare, care este destul de greu pentru sendmail în caz contrar.

Pasul 1., Verificați dacă Linia de Comandă Mailer Pachetul este Instalat

Tip în mailer pachetul nume doar modul în care ar rula comanda, pentru a verifica dacă este disponibil:

  • Dacă este instalat pachetul, comanda se execută, și promptă modificări — în timp ce încerca pentru a executa comanda — și veți vedea un cursor care clipește urmat de mesajul Recipient names must be specified în cazul sendmail. Concluzie: pachetul este instalat.,dacă pachetul nu este instalat, veți primi un mesaj de avertizare și o sugestie cum să îl instalați:

în acest exemplu, am încercat dacă comanda sendmail funcționează. După ce adăugăm pachetul SSMTP, această comandă și comanda ssmtp vor funcționa și vor schimba promptul de comandă din terminal. Să ne uităm la asta!

Pasul 2., Instalarea pachetului de Mailer pentru linia de comandă Sendmail

după cum a sugerat ieșirea terminalului, trebuie să rulăm comanda de instalare a Managerului de pachete avansate — de obicei cu permisiunea root — pentru a instala pachetul necesar. Așa cum am menționat anterior, configurațiile sunt mult mai simple pentru sendmail când abstractizați complexitatea configurației. Care poate fi făcut cu SSMTP:

 sudo apt install ssmtp

Pasul 3. Verificați instalarea

după finalizarea instalării, puteți verifica dacă sendmail este capabil să transmită mesaje., Introduceți codul de mai jos în terminal:

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

ar trebui să trimită e-mailul dacă totul funcționează corect. Aici "hello" string adus la sendmail comanda va fi subiectul mesajului expediat, în timp ce definită adresa de e-mail este în mod natural destinatar de e-mail.

executați comanda… și, oops: sendmail: Cannot open mailhub:25. Motivul pentru aceasta este că nu am furnizat deloc setările mailhub. Pentru a transmite mesaje, aveți nevoie de un server SMTP configurat., Acolo SSMTP funcționează foarte bine: trebuie doar să editați fișierul de configurare o dată și sunteți bine să mergeți.

Pasul 4. Configurarea SSMTP

să localizăm fișierul de configurare la /etc/ssmtp/ssmtp.conf. Aici, ar trebui să puneți codul de mai jos pentru a configura un releu SMTP:

Acest lucru înseamnă că ați configurat un serviciu extern care va transmite de fapt
e-mailurile. Când furnizați acreditări către Gmail, de exemplu, veți vedea mesajele trimise de la terminal în directorul „E-mail trimis” al căsuței poștale. Configurațiile arată similar și cu alte servicii.,

aceasta a fost configurația de bază pentru sendmail și pașii de instalare pentru orice pachet mailer de linie de comandă utilizat frecvent. Apoi, vom sări la instalarea și încercarea diferitelor alte pachete.

trimiterea de e-mail folosind comanda SSMTP

acesta este un instrument frumos mic tocmai am configurat pentru livrare e-mail. După cum sugerează pagina man, este un emulator minimalist al sendmail. Ca atare, SSMTP permite utilizatorilor să transfere e-mailuri printr-un server SMTP din linia de comandă Linux., Acesta oferă mijloacele de conectare la un mailhub cu un fișier de configurare adecvat. Dacă fișierul dvs. de configurare a fost configurat corect, toate grijile dvs. cu privire la trimiterea e-mailului din linia de comandă pot dispărea.

în Aplicare de Bază a SSTMP comanda:

Dacă utilizați doar SSMTP, comanda ar trebui să arate după cum urmează:

 ssmtp [email protected] < mail.txt

în Urma ssmtp comanda, tu ar trebui să pună la adresa destinatarului, atunci puteți include un fișier care va arăta în corpul e-mail. Aici puteți defini anteturile pentru mesaj, lista destinatarilor și setați tipul de conținut., În acest fel puteți trimite e-mailuri HTML. SSMTP va interpreta mesajul dvs. și va folosi corect valorile furnizate. Iată un exemplu de HTML pe care l-ați putea trimite:

nu puteți oferi cu adevărat alte opțiuni cu SSMTP, deoarece acestea nu sunt respectate de designul său minimalist.

depanare:

În cazul în care executați în următoarea eroare pe linia de comandă:

Acest lucru este probabil, deoarece Gmail nu tratează SSMTP ca o aplicație sigură. Pentru a scăpa de această eroare, trebuie să modificați setările din contul Gmail – puteți căuta mai multe informații despre riscurile potențiale și acolo.,

trimiterea de e-mail folosind comanda sendmail

de ceva timp acum sendmail este agentul clasic de transfer de e-mail din lumea UNIX. Acesta a fost introdus pentru prima dată în 1979 și natura sa extrem de configurabil și scalabilitate a făcut-o implicit go-to pentru administratorii de servere.,

Am văzut deja cum de a trimite e-mailuri de bază de către ssmtp comandă, așa că hai să vedem diferența folosind sendmail:

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

am aruncat în -v argument, care se va face comunicarea între serverul de e-mail și e-mail transfer agent vizibile.există o mulțime de configurații pe care le puteți utiliza dacă configurați propriul server de e-mail și implementați sendmail pe acesta. Cu toate acestea, acest lucru nu intră în domeniul de aplicare al acestui articol. Vom reveni la subiect într-unul viitor. Rămâneți aproape.,

trimiterea de e-mail folosind comanda CURL

acest instrument este, de asemenea, extrem de comun pentru transferul de date de pe un server. Aceasta susține mai multe protocoale, cum ar fi HTTP, FTP, POP3 sau SMTP. Pachetul CURL este utilizat pe scară largă în întreaga lume, un motiv principal este că are o implementare PHP nativă, iar PHP a fost limbajul implicit de scripting din partea serverului pentru o lungă perioadă de timp.

instalare:

verificați dacă pachetul este deja instalat., Dacă nu executați de mai jos:

 sudo apt install curl

Când ați terminat, puteți accesa foaie de ieftin pentru opțiunile disponibile pentru CURL de funcționare curl -h. Versiunea mai detaliată este accesibilă fie prin man curlsau curl --manual. Dacă doriți să obțineți cunoștințe aprofundate folosind cURL, există această carte electronică la îndemână care conține tot ceea ce ați dori vreodată să știți.pentru a trimite un e-mail cu CURL, trebuie să configurați conexiunea SMTP., Cel mai adesea serverele de e-mail trimise de Google sau Yahoo sunt utilizate pentru testarea trimiterii de e-mailuri cu SMTP. Rețineți că trebuie să activați accesul pentru aplicații mai puțin sigure în setările Gmail și este posibil să se aplice setări suplimentare de securitate similare și pentru Yahoo.

In terminal comanda fragmentul de mai sus, --url și --user parametrii definiți setări conexiune SMTP. Secțiunea parolă pentru parametrul --user este parola contului dvs. pentru adresa de e-mail dată. Desigur, puteți utiliza și furnizori de servicii de e-mail cloud., Voi arăta că folosind Mailgun în secțiunea următoare.implementarea avansată pentru trimiterea de e-mailuri cu CURL:

lucrul cu platformele de livrare a e-mailurilor, trebuie mai întâi să obțineți o cheie API. În acest tutorial, voi arăta CURL exemplu de trimitere a e-mailului folosind Mailgun, așa că dacă rămâneți blocat în timpul procesului de înregistrare, urmați acest ghid de configurare pentru a ajunge pe drumul cel bun.

sintaxa este destul de simplă. Este posibil să fi observat înainte, dar trebuie să încheiați fiecare linie a comenzii cu caractere \., Acesta este un caracter de continuare a liniei, comanda poate fi rulată fără toate acestea într-o singură linie. Un alt lucru de reținut este -F opțiune. Un extras din pagina man:

 -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.

așa cum am încurajat înainte, este o bună practică să se scufunde în manualele atunci când se utilizează aceste comenzi mailer linie de comandă. După cum spune manualul CURL, practic creați un formular de trimis. Fiecare linie este o intrare dată ca name=content pereche. Când atașați fișiere de pe computerul local, aveți nevoie de un @ în fața numelui fișierului.,

acesta este modul în care va arăta e-mailul livrat:

puteți face același lucru folosind majoritatea celorlalte platforme de livrare a e-mailurilor, cum ar fi Sendgrid, de exemplu.puteți aplica aceeași logică a construirii unui formular într-un fișier text, care vă permite să trimiteți mesaje HTML cu ușurință:

Dacă executați comanda simplă din primul exemplu…

depanare:

este posibil să aveți nevoie de comutatorul--insecure, care permite CURL să efectueze conexiuni și transferuri SSL „nesigure”., CURL va returna un mesaj de eroare dacă serverul de la distanță utilizează un certificat auto-semnat sau dacă certificatul serverului de la distanță nu este semnat de un CA listat în fișierul ca cert.

Trimiterea de e-Mail Folosind Swaks comanda

Ca documentația lor membre, Swaks este un sistem flexibil, scripturi, orientate spre tranzacții SMTP test tool. Acesta este capabil să se ocupe de caracteristici SMTP și extensii, cum ar fi TLS, autentificare, și pipelining și mai multe versiuni ale protocoalelor SMTP. Aceasta susține, de asemenea, mai multe metode de transport, inclusiv prize Unix-domeniu, prize de internet-domeniu, și conducte pentru procesele de spawned.,

Instalare:

 sudo apt install swaks

în aplicare de Bază pentru trimiterea de e-mail cu Swaks:

pentru a vă conecta la un cont SMTP aveți nevoie pentru a oferi serverul -s, utilizatorul -au, parola -ap și adresa -t (în cazul în care doriți să trimiteți e-mail) steaguri. Steagul -tls este de asemenea important dacă vă conectați la portul 587.,

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

acreditările pot fi, de asemenea, furnizate prin intermediul linie de comandă solicită, dacă specificați doar pentru a autentifica -a, nu de umplere de utilizator și parola prin opțiunile de linie de comandă.

Avansat de implementare pentru trimiterea de e-mail cu Swaks:

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

Există și alte opțiuni pe care nu le vom atinge acum. Să mergem la următorul nostru pachet mailer!

trimiterea e-mail folosind comanda Mutt

Mutt este diferit de clienții de e-mail anterioare, deoarece este un client de e-mail linie de comandă feature-bogat., Îl puteți utiliza pentru citirea e-mailurilor de la terminalul Linux, conectarea la căsuțele poștale ale utilizatorilor locali sau la serverele POP/IMAP. Mutt suportă mai multe cutii poștale formate, cum ar fi mbox, MH, maildir, MMDF, control complet din anteturile mesajelor în compoziție e-mail, și mai multe mesaje de marcare și culori să se ocupe de mesaje.

Instalare:

 sudo apt install mutt

în aplicare de Bază pentru trimiterea de e-mail cu mutt:

De această dată nu va fi surprins de structura de comanda., Puteți furniza un mesaj gol corp cu < /dev/null:

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

Avansat de implementare pentru trimiterea de e-mail cu mutt:

Pentru trimiterea de e-mail, inclusiv atașamentele, ai nevoie -a pavilion. În acest fel puteți trimite fișiere utile, cum ar fi jurnalele de sistem, la o adresă specificată.

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

de asemenea, puteți trimite e-mail HTML dacă extensia de fișier pe care o adăugați la corpul mesajului este în format HTML., Mutt va recunoaște tipul de fișier și rezolva – l astfel încât nu va trimite HTML ca text simplu:

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

Acest lucru este pentru trimiterea de e-mail cu mutt. Dacă îl aveți pe mașina dvs., aș sugera să încercați cum puteți lucra cu configurarea căsuței poștale și manipularea mesajelor primite. Dacă faceți acest lucru, vă rugăm să vă împărtășiți gândurile în secțiunea de comentarii de mai jos. Salut orice opinie despre pachetele prezentate în tutorial.

trimiterea e-mail folosind comanda Mailx

Mailutils este un pachet compus pentru mai multe cazuri de utilizare., Este conceput pentru a servi utilizatorii obișnuiți, administratorii de sistem și dezvoltatorii. Vom atinge doar funcționalitățile sale de bază în ceea ce privește redirecționarea e-mailurilor. Dacă sunteți interesat de mai multe caracteristici, consultați pagina man.

Instalare:

 sudo apt install mailutils

în aplicare de Bază pentru trimiterea de e-mail cu mailx:

mailx pachetul a 2 este egal cu comandă sintaxă (mail și mailx ambele funcționează în exact același mod)., Comanda cea mai simplistă constă în comanda mail/mailx și adresa la care să trimiteți e-mailul, dar probabil ați include subiectul și cel puțin un corp de mesaj bazat pe text. O astfel de comandă ar trebui să arate astfel:

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

Cu ajutorul echo comandă și tubulatura de ieșire la mail comandă, puteți evita mailx este solicitări suplimentare pentru Cc adresele și corpul mesajului.,

implementare avansată pentru trimiterea de e-mailuri cu mailx:

pentru exemplul avansat, vom trimite din nou un e-mail HTML complet. Trebuie să furnizăm fișierul HTML de e-mail la alegere cu caracterul < și să adăugăm „steagul de adăugare” cu tipul de conținut. Codul complet arată după cum urmează:

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

de asemenea, puteți seta o adresă de retur cu --return-address=<EMAIL-ADDRESS>, care pot fi utile., O altă opțiune utilă, pe care nu am putut rezolva pentru a lucra cu HTML e-mail paralel, este de a oferi atașamente în același mesaj: -A "mail.txt". Deși puteți lista mai mulți destinatari, poate fi atașat doar un singur atașament. Puteți configura serverul SMTP extern dacă vă place.

folosind comanda Telnet Alternative Openssl

Telnet este un protocol de comunicare interactiv pentru comunicarea cu o altă gazdă. Ar putea fi folosit pentru a deschide o conexiune SMTP la un alt server și pentru a transfera mesaje de e-mail., Cu toate acestea, deoarece protocolul nu este securizat, majoritatea serverelor vor respinge acest tip de comunicare. Acesta este locul în care Openssl intră în imagine, deoarece este construit cu securitate SSL/TLS inclusă. Este invocat în mod similar cu telnet cu un argument gazdă și efectuează implicit o comandă deschisă:

am indentat intrările pe care trebuie să le furnizați în timp ce canalul de comunicare este deschis. Aceste intrări sunt auto-explicative, dar un lucru pe care trebuie să-l detaliez este hash-ul parolei. Poate fi un hash codificat base64, pe care îl puteți obține cu următoarea comandă: echo -en '\[email protected]\000gmailpassword' | base64., Caracterele escape din șir nu pot fi omise. Dacă nu aveți instalat pachetul base64, acesta este disponibil prin intermediul managerilor de pachete.după cum puteți vedea mai sus, acest mijloc de trimitere a e-mailului oferă doar o interfață pentru mesajele bazate pe text, prin urmare are limitarea sa în cazurile de utilizare. Pe de altă parte, arată toate informațiile schimbate cu serverul de poștă, ceea ce face ca depanarea să fie foarte ușoară.

Depanarea problemelor de e-Mail

verificați jurnalele de e-mail

trebuie să localizați fișierul jurnal navigând la folderul corespunzător. Prefer să folosesc editorul meu de cod (de ex., Sublime Text) pentru aceasta, astfel încât să pot avea jurnalele cu evidențierea sintaxei:

$ sudo subl /var/log

în funcție de distribuția Linux curentă, poate fi necesar să vă uitați la surse diferite.
jurnalul poate conține informații utile despre problemele de livrare. În acest moment, atunci când derulați la partea de jos a acestui:

puteți inspecta dacă livrarea este de succes sau de a înțelege de ce procesul a eșuat.,
Se poate întâmpla ca consola nu prezinta erori, dar în e-mail log puteți vedea că mesajul a fost coada de așteptare pentru livrare, astfel încât procesul nu opri pe masina ta, dar probabil a fost refuzat de către server de e-mail ați fost încercarea de a ajunge.

rularea tuturor comenzilor într-o secvență

deci, totul este gata pentru testul final. Toate comenzile terminalului mailer sunt adunate aici într-un fișier script. După ce ați descărcat folderul de lucru cu fișierul script din el, navigați la folderul care conține și faceți scriptul executabil: chmod u+x mail.sh., Dacă aveți toate fișierele pe care le-am furnizat gata, puteți începe testarea comenzilor mailer afișate în tutorial. Trebuie doar să înlocuiți "<RECIPIENT ADDRESS>" testul tau cu adresa de e-mail în cod și a alerga ./mail.sh în linia de comandă.

odată ce scriptul termină de rulat, inbox-ul dvs. va fi completat cu e-mailurile de testare.

bine făcut!

rezumat

în acest articol, v-am arătat multe modalități de a trimite e-mailuri din linia de comandă Linux. Sperăm că, pe baza a ceea ce ați văzut, puteți instala și configura aceste servicii și pe mașina dvs.,

postarea a arătat cele mai utilizate pachete de mailer pentru linia de comandă și cum să trimiteți e-mailuri cu ele, iar în final, am creat un script shell care adună toate comenzile utilizate în articol. Puteți descărca fișierele de lucru ale proiectelor aici, iar dacă instalați pachetele introduse în tutorial și completați, de asemenea, datele de Acreditare și detaliile destinatarului, puteți rula scriptul în timpul liber.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *