Welcome to Our Website

16 Kommando Eksempler til at Sende e-Mail Fra Linux-kommandolinjen

uanset Om du er en udvikler, der arbejder non-stop i Linux-kommandolinjen eller en server administrator, der ønsker logs eller andre data, der er udtrukket fra administreres systemer, vide, hvordan til at sende e-mail fra kommandolinjen er meget nyttigt.

i dette indlæg finder du eksempler på, hvordan du sender e-mail fra terminalen. Vi ser på tilpassede konfigurationer og berører, hvordan du konfigurerer SMTP-forbindelser til e-mail-konti eller e-mail-tjenesteudbydere., Jeg viser dig, hvordan du installerer de nødvendige konsolmailer-pakker og giver baggrund for kommandolinjeindstillinger baseret på pakkens manualer.

opsætning af Kommandolinjepailer-pakker

alle mailer-pakker i hele vejledningen er tilgængelige via Debians avancerede pakkehåndtering, så installeringstrinnene i eksemplet nedenfor kan anvendes til alle de fremviste pakker.,

bemærk, at disse stykker af software, der kan installeres af andre standard pakke ledere som f.eks. yum eller dnf afhængigt af dit Linux-system til distribution.

i de fleste tilfælde er enten sendmail eller postfix tilgængelig i hver Linu.-distribution uden for boksen, eller i det mindste er det, hvad lignende blogindlæg siger. Enten er jeg uheldig, eller de andre tog fejl, men jeg var nødt til at installere en manuelt. Du har dog bestemt brug for en af dem til e-mail-levering.,

opsætning af Sendmail med Ssmtp-pakke

Jeg fortsætter medsendmail og ssmtp-pakken. Ssmtp indeholder sendmail pakken under hætten, som du vil se, og det letter konfigurationen, hvilket er ret svært for sendmail ellers.

Trin 1., Check, hvis kommandolinje Mailer Pakken er Installeret

Skriv i mailer pakke er navnet på lige den måde, du ville køre kommandoen, for at kontrollere, om den er tilgængelig:

  • Hvis pakken er installeret, er den kommando, og den hurtige ændringer — mens de forsøger at udføre den kommando — og du vil se en blinkende markør efterfulgt af meddelelsen Recipient names must be specified i tilfælde af sendmail. Konklusion: pakken er installeret.,

  • hvis pakken ikke er installeret, modtager du en advarselsmeddelelse og et forslag til, hvordan du installerer den:

i dette eksempel prøvede jeg, hvis kommandoen sendmail fungerer. Når vi har tilføjet ssmtp-pakken, fungerer denne kommando og kommandoen ssmtp både og ændrer kommandoprompten i terminalen. Lad os se på det!

Trin 2., Installation af Sendmail kommandolinje Mailer-pakke

som terminaloutput foreslået, er vi nødt til at køre Advanced Package Manager ‘ s install command — normalt med root — tilladelse-for at installere den nødvendige pakke. Som nævnt før er konfigurationerne meget enklere for sendmail, når du abstraherer kompleksiteten af konfigurationen. Det kan gøres med SSMTP:

 sudo apt install ssmtp

Trin 3. Bekræft installationen

Når installationen er afsluttet, kan du kontrollere, om sendmail er i stand til at videresende meddelelser., Indtast nedenstående kode i terminalen:

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

den skal sende e-mailen, hvis alt fungerer korrekt. Her vil kommandoen "hello" ledes til kommandoen sendmail være genstand for den sendte meddelelse, mens den definerede e-mail-adresse naturligvis er modtageren af e-mailen.

du kører kommandoen… og UPS: sendmail: Cannot open mailhub:25. Årsagen til dette er, at vi slet ikke leverede mailhub-indstillinger. For at videresende meddelelser har du brug for en SMTP-server konfigureret., Det er her SSMTP fungerer rigtig godt: du skal bare redigere dens konfigurationsfil en gang, og du er god til at gå.

Trin 4. Konfiguration af ssmtp

lad os finde konfigurationsfilen på /etc/ssmtp/ssmtp.conf. Her skal du sætte koden nedenfor for at konfigurere et SMTP-relæ:

dette betyder, at du opretter en ekstern tjeneste, der faktisk videresender
dine e-mails. Når du giver legitimationsoplysninger til Gmail for eksempel, vil du se de meddelelser, der sendes fra terminalen i din postkasses ‘sendt mail’ mappe. Konfigurationerne ligner også andre tjenester.,

dette var den grundlæggende konfiguration for sendmail og installationstrinnene for enhver ofte brugt kommandolinjemailer-pakke. Dernæst hopper vi på at installere og prøve forskellige andre pakker.

afsendelse af e-mail ved hjælp af Ssmtp-kommandoen

Dette er et dejligt lille værktøj, vi lige har konfigureret til postlevering. Som sin man side antyder, er det en minimalistisk emulator af sendmail. Som sådan giver SSMTP brugere mulighed for at overføre e-mails via en SMTP-server fra Linu. – kommandolinjen., Det giver mulighed for at oprette forbindelse til en mailhub med en ordentlig konfigurationsfil. Hvis din konfigurationsfil blev konfigureret rigtigt, kan alle dine bekymringer vedrørende e-mail-afsendelse af kommandolinje forsvinde.

Grundlæggende Gennemførelsen af SSTMP kommando:

Hvis du bare bruge SSMTP, skal kommandoen se ud som følger:

 ssmtp [email protected] < mail.txt

Efter ssmtp kommando, skal du sætte modtageren adresse, så du kan inkludere en fil, der vil blive vist i e-mailens brødtekst. Her kan du definere overskrifter for meddelelsen, liste yderligere modtagere og indstille indholdstypen., På denne måde kan du sende HTML-e-mails. SSMTP vil fortolke din besked og bruge de angivne værdier korrekt. Her er et eksempel på en HTML, du muligvis sender:

Du kan ikke rigtig give yderligere muligheder med ssmtp, da de ikke respekteres af dets minimalistiske design.

fejlfinding:

Hvis du løber ind i følgende fejl på kommandolinjen:

det er sandsynligt, fordi Gmail ikke behandler ssmtp som en sikker applikation. For at slippe af med denne fejl skal du ændre indstillingerne på din Gmail – konto-du kan også finde flere oplysninger om potentielle risici der.,

afsendelse af e-mail ved hjælp af Sendmail-kommandoen

i ganske lang tid er sendmail nu den klassiske postoverførselsagent fra Uni. – verdenen. Det blev først introduceret i 1979, og dets meget konfigurerbare natur og skalerbarhed gjorde det til standard go-to for serveradministratorer.,

Vi har allerede set, hvordan at sende grundlæggende e-mails med ssmtp kommando, så lad os se forskellen ved hjælp af sendmail:

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

jeg kastede -v argument, som vil gøre kommunikationen mellem e-mail-server og din e-mail transfer agent synlige.

der er masser af konfigurationer, som du kan bruge, hvis du opretter din egen mailserver og implementerer sendmail på den. Det er dog uden for denne artikels anvendelsesområde. Vi vender tilbage til emnet i en kommende. Bliv hængende.,

afsendelse af e-mail ved hjælp af CURL-kommando

dette værktøj er også enormt almindeligt for dataoverførsel fra en server. Det understøtter mange protokoller, som HTTP, FTP, POP3 eller SMTP. CURL-pakken bruges bredt over hele kloden, en hovedårsag er, at den har indbygget PHP-implementering, og PHP var standard scriptsprog på serversiden i lang tid.

Installation:

Kontroller, om pakken allerede er installeret., Hvis ikke køre nedenstående:

 sudo apt install curl

Når du er færdig, kan du få adgang til cheat sheet for de tilgængelige muligheder for CURL ved at køre curl -h. Den mere detaljerede version er tilgængelig med enten man curl eller curl --manual. Hvis du ønsker at få dybdegående viden ved hjælp af cURL, der er denne handy e-bog, der indeholder alt, hvad du nogensinde ønsker at vide.

grundlæggende implementering til e-mail-afsendelse med CURL:

for at sende en e-mail med CURL skal du oprette SMTP-forbindelse., Oftest bruges Googles eller Yahoos udgående mailservere til at teste e-mail-afsendelse med SMTP. Bemærk, at du skal aktivere adgang for mindre sikre apps i Gmail-Indstillinger, og lignende yderligere sikkerhedsindstillinger kan også gælde for Yahoo.

i terminalkommandostykket ovenfor definerer parametrene --urlog --user parametrene SMTP-forbindelsesindstillingerne. Afsnittet Adgangskode til --user parameter er din kontos adgangskode til den givne e-mail-adresse. Naturligvis kan du også bruge cloud-e-mail-tjenesteudbydere., Jeg vil vise det ved hjælp af Mailgun i det følgende afsnit.

avanceret implementering til e-mail-afsendelse med CURL:

arbejde med e-mail-leveringsplatforme skal du først få en API-nøgle. I denne tutorial, jeg vil vise CURL e-mail afsendelse eksempel ved hjælp af Mailgun, så hvis du går i stå under registreringsprocessen følge denne setup guide til at komme på rette spor.syntaksen er ret ligetil. Du har måske bemærket før, men du skal afslutte hver linje i kommandoen med \ tegn., Dette er en linje fortsættelse karakter, kommandoen kan køres uden dem alle i ASN linje samt. Den anden ting at huske er -F mulighed. Et uddrag fra man-siden:

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

som jeg opmuntrede før, er det en god praksis at dykke ned i manualerne, når du bruger disse kommandolinjemailer-kommandoer. Som KRØLLEHÅNDBOGEN siger, opretter du dybest set en formular, der skal sendes. Hver linje er en post givet som en name=content par. Når du vedhæfter filer fra din lokale maskine, skal du have et @ foran filnavnet.,

Sådan ser den leverede e-mail ud:

Du kan gøre det samme ved hjælp af de fleste af de andre e-mailleveringsplatforme, som f.eks.

afsendelse af HTML-e-mail fra kommandolinjen med CURL:

Du kan anvende den samme logik med at opbygge en formular i en tekstfil, som giver dig mulighed for nemt at sende HTML-meddelelser:

Hvis du kører den enkle kommando fra det første eksempel…

fejlfinding:

Du kan få brug for --insecure s .itch, som gør det muligt for CURL at udføre “usikre” SSL-forbindelser og overførsler., CURL returnerer en fejlmeddelelse, hvis fjernserveren bruger et selvsigneret certifikat, eller hvis fjernservercertifikatet ikke er underskrevet af en CA, der er anført i CA cert-filen.

afsendelse af e-mail ved hjælp af S .aks-kommando

som deres dokumentation angiver, er S .aks et fleksibelt, scriptbart, transaktionsorienteret SMTP-testværktøj. Det er i stand til at håndtere SMTP funktioner og udvidelser såsom TLS, autentificering og pipelining og flere versioner af SMTP-protokoller. Det understøtter også flere transportmetoder, herunder UNI.-domæne stik, internet-domæne stik, og rør til opfostrede processer.,

Installation:

 sudo apt install swaks

Grundlæggende gennemførelse for at sende e-mail med Swaks:

for at oprette forbindelse til en SMTP-konto, du har brug for at give serveren -s bruger -au password -ap og adresse -t (hvis du ønsker at sende din e-mail) flag. Flagget -tls er også vigtigt, hvis du opretter forbindelse på port 587.,

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

legitimationsoplysningerne kan også leveres via kommandolinjeprompter, hvis du kun angiver at godkende -a, ikke udfylde brugeren og adgangskoden gennem kommandolinjeindstillinger.

avanceret implementering til e-mail-afsendelse med S .aks:

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

Der er andre muligheder, som vi ikke vil røre ved nu. Lad os gå til vores næste mailer-pakke!

afsendelse af e-mail ved hjælp af Mutt-kommandoen

Mutt er forskellig fra de tidligere e-mail-klienter, da det er en funktionsrig kommandolinje-e-mail-klient., Du kan bruge den til at læse e-mails fra Linu. – terminalen, oprette forbindelse til lokale brugerpostkasser eller til POP/IMAP-servere. Mutt understøtter flere postkasseformater som MBO., MH, maildir, MMDF, fuld kontrol over meddelelsesoverskrifter under e-mail-sammensætning og flere meddelelsesmærker og farver til at håndtere meddelelser.

Installation:

 sudo apt install mutt

grundlæggende implementering til e-mail-afsendelse med mutt:

på dette tidspunkt vil du ikke blive overrasket over kommandoens struktur., Du kan give en tom besked krop med < /dev/null:

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

Avanceret implementering for at sende e-mail med mutt:

For at sende e-mail med vedhæftede filer, du har brug for det -a flag. På denne måde kan du sende nyttige filer, som systemlogfiler, til en bestemt adresse.

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

Du kan også sende HTML-e-mail, hvis den filtypenavn, du føjer til meddelelsesorganet, er i HTML-format., Mutt genkender filtypen og løser den, så den ikke sender din HTML som almindelig tekst:

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

Dette er det til e-mail-afsendelse med mutt. Hvis du har det på din maskine, vil jeg foreslå at prøve, hvordan du kan arbejde med indgående konfiguration af din postkasse og håndtering af indgående meddelelser. Hvis du gør det, kan du dele dine tanker i kommentarfeltet nedenfor. Jeg glæder mig over enhver mening om de pakker, der vises i selvstudiet.

afsendelse af e-mail ved hjælp af Mail. – kommandoen

Mailutils er en sammensat pakke til flere brugssager., Den er designet til at tjene regelmæssige brugere, systemadministratorer og udviklere. Vi vil kun berøre dens grundlæggende funktionaliteter vedrørende videresendelse af e-mail. Hvis du er interesseret i flere funktioner, skal du tjekke dens man side.

Installation:

 sudo apt install mailutils

Grundlæggende gennemførelse for at sende e-mail med mailx:

mailx pakke er 2 lige store kommando syntaks (mail og mailx begge arbejder på præcis samme måde)., Den mest forenklede kommando består af kommandoen mail/mailx og adressen, der skal sendes mailen til, men du vil sandsynligvis inkludere emnet og i det mindste noget tekstbaseret meddelelsesorgan. Sådan en kommando skal se ud som dette:

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

Ved hjælp af echo kommando og rør output til mail kommando, kan du undgå mailx yderligere beder til Cc-adresser og brødteksten.,

avanceret implementering til e-mail-afsendelse med mail::

i det avancerede eksempel sender vi en fuldgyldig HTML-e-mail igen. Vi er nødt til at give den e-mail-HTML-fil efter vores valg med < karakter og tilføje “Tilføj flag” med indholdstypen. Den fulde kode ser ud som følger:

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

Du kan også indstille en returadresse med --return-address=<EMAIL-ADDRESS>, som kan være nyttige., En anden nyttig mulighed, som jeg ikke kunne løse for at arbejde med HTML-e-mail-parallel, er at give vedhæftede filer i den samme meddelelse: -A "mail.txt". Selvom du kan liste flere modtagere, kun en enkelt vedhæftet fil kan vedhæftes. Du kan konfigurere ekstern SMTP-server, hvis der fantasier dig.

brug af Telnet alternativ OpenSSL kommando

Telnet er en interaktiv kommunikationsprotokol til kommunikation med en anden vært. Det kunne bruges til at åbne en SMTP-forbindelse til en anden server og overføre e-mails., Da protokollen imidlertid ikke er sikret, vil de fleste servere afvise denne kommunikationstype. Det er her Openssl kommer ind i billedet, da det er bygget med SSL/TLS-sikkerhed inkluderet. Det påberåbes på samme måde som telnet med et værtsargument, og det udfører en åben kommando implicit:

Jeg indrykkede de input, du skal give, mens kommunikationskanalen er åben. Disse input er selvforklarende, men en ting, jeg har brug for detaljer, er adgangskodehashen. Det kan være en base64-kodet hash, som du kan få med følgende kommando: echo -en '\[email protected]\000gmailpassword' | base64., Escape-tegnene fra strengen kan ikke udelades. Hvis du ikke har base64-pakken installeret, er den tilgængelig via pakkeadministratorer.

som du kan se ovenfor, giver dette middel til e-mail-afsendelse kun en grænseflade til tekstbaserede meddelelser, derfor har den sin begrænsning i brugssager. På den anden side viser det alle oplysninger, der udveksles med mailserveren, hvilket gør debugging virkelig let.

fejlfinding af Mailproblemer

kontroller maillogfilerne

Du skal finde din logfil ved at navigere til den tilsvarende mappe. Jeg foretrækker at bruge min kode editor (f.eks., Sublime te .t) til dette, så jeg kan have logfilerne med syntakshøjdepunkt:

$ sudo subl /var/log

afhængigt af din nuværende Linu. – distribution skal du muligvis se på anden kilde.
loggen kan indeholde nyttige oplysninger om leveringsproblemer. På dette tidspunkt, når du ruller til bunden af dette:

Du kan inspicere, om leveringen er vellykket eller forstå, hvorfor processen mislykkedes.,
det kan ske, at din konsol ikke viser nogen fejl, men i mail-loggen kan du se, at meddelelsen var i kø til levering, så processen stoppede ikke på din maskine, men blev sandsynligvis nægtet af den mailserver, du forsøgte at nå.

kører alle kommandoer i en sekvens

så alt er klar til den endelige test. Alle mailer terminal kommandoer er samlet her i en script-fil. Når du har do .nloadet arbejdsmappen med scriptfilen i den, skal du navigere til den indeholdende mappe og gøre scriptet eksekverbart: chmod u+x mail.sh., Hvis du har alle de filer, jeg leverede klar, kan du begynde at teste mailer-kommandoerne, der vises i selvstudiet. Du skal bare udskifte "<RECIPIENT ADDRESS>" til din test-e-mail-adresse i koden og køre ./mail.sh på kommandolinjen.

når scriptet er færdig med at køre, vil din indbakke blive fyldt med test-e-mails.

godt klaret!

resum.

i denne artikel viste jeg dig mange måder at sende e-mail fra Linu. – kommandolinjen. Forhåbentlig, baseret på hvad du så, du kan installere og konfigurere disse tjenester på din maskine selv så godt.,

indlægget viste de mest almindeligt anvendte kommandolinje mailer-pakker, og hvordan man sender e-mails med dem, og til sidst oprettede jeg et shell-script, der samler alle de kommandoer, der blev brugt i artiklen. Du kan do .nloade de projekter, der arbejder filer her, og hvis du installerer de pakker, der er introduceret i selvstudiet og også udfylder dine legitimationsoplysninger og modtageroplysninger, kan du køre scriptet på din fritid.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *