9 Mail/mailx command exempel för att skicka e-post från kommandoraden på Linux

skicka e-post från kommandoraden

e-postkommandot är en viktig som bör finnas tillgänglig på alla linux-server så att olika tjänster och andra webbapplikationer kan generera och överföra e-post.

i ett tidigare inlägg på e-postkommandot såg vi hur e-postkommandot kan användas för att skicka e-post från kommandoraden på din linux-server.,

i denna handledning kommer vi att använda en förbättrad version av postkommandot. Dess kallade mailx (eller bara mail när den är installerad), och det kan göra många fler saker än vad det äldre mailkommandot från gnu mailutils-paketet kan göra.

hur fungerar det

kommandot mail / mailx behöver en lokal smtp-server (MTA) som körs för att leverera e-postmeddelandena. Rutten som tas av e-postmeddelandet är något så här –

mail -> sendmail -> local MTA -> recipient MTA 

mottagaren mta skulle vara Gmails smtp-server om mottagaren är någon på gmail.com till exempel., För den lokala MTA måste du installera en smtp-server som Postfix. En grundläggande installation av Postfix med minimal konfiguration skulle fungera i de flesta fall.

installera mailx-kommandot

På Ubuntu/Debian-baserade system är mailx-kommandot tillgängligt från 2 olika paket –

1. heirloom-mailx
2. BSD-mailx

Vi kommer att använda heirloom-mailx-paketet eftersom det har fler funktioner och alternativ.
på CentOS/Fedora-baserade system finns det bara ett paket som heter ”mailx” vilket är heirloom-paketet.,

för att ta reda på vilket mailx-paket som är installerat på ditt system, kontrollera utmatningen ”man mailx” och rulla ner till slutet och du bör se lite användbar information.

# ubuntu/debian$ sudo apt-get install heirloom-mailx# fedora/centos$ sudo yum install mailx

med mailx-kommandot

en gång installerat kan mailx-kommandot refereras direkt med namnposten, så du skriver bara in det i kommandoraden.

1. Simple mail

kör följande kommando och sedan väntar mailx på att du anger meddelandet i e-postmeddelandet. Du kan slå enter för nya linjer. När du är klar att skriva meddelandet, tryck Ctrl+D och mailx skulle visa EOT.,

Efter än mailx levererar automatiskt e-postmeddelandet till destinationen.

$ mail -s "This is the subject" Hi someoneHow are youI am fineByeEOT

2. Ta meddelande från en fil

meddelandekroppen i e-postmeddelandet kan också tas från en fil.

$ mail -s "This is Subject" < /path/to/file

meddelandet kan också ledas med hjälp av echo-kommandot –

$ echo "This is message body" | mail -s "This is Subject" 

3. Flera mottagare

för att skicka e-post till flera mottagare, ange alla e-postmeddelanden separerade med ett kommatecken

$ echo" detta är meddelande organ "| mail-S" Detta är ämne", 

4., CC och BCC

alternativen ”-C” och ”-b” kan användas för att lägga till CC-respektive BCC-adresser.

$ echo "det här är meddelandekroppen" /mail-s "det här är ämnet" -C 

5. Ange från namn och adress

för att ange ett ”från” namn och adress, Använd alternativet ”-r”. Namnet ska följas av adressen insvept i””.

$ echo "this is message body"/mail-s "This is Subject" -r "Harry<>" 

6., Ange” svara på ” adress

svaret på adressen är inställt med den interna alternativvariabeln ”replyto” med alternativet ”-s”.

7. Bilagor

bilagor kan läggas till med alternativet ”-a”.

$ echo "this is message body"/mail-s "This is Subject" -r "Harry<>" -a/path/to/file 

8. Använd extern SMTP-server

det här är en exklusiv funktion, som du bara får med heirloom mailx och inte BSD mailx, eller postkommandot från gnu mailutils eller mutt-kommandot.,

mailx-kommandot kan använda en extern smtp-server för att vidarebefordra meddelandet. Syntaxen är lite lång men vettigt.

här är en uppdelning

Du kan använda gmail smtp-servrarna och skicka e-post via ditt gmail-konto. Det är så coolt!
för gmail specifikt skulle du behöva aktivera mindre säkra appar inställningar innan du kan skicka e-post sådär.

9. Verbose – watch smtp communication

När du använder externa smtp-servrar kan du välja att titta på hela smtp-kommunikationen som görs i bakgrunden., Detta är användbart speciellt när du testar eller felsöker smtp-servrar.

felsökning

om mailen inte levereras korrekt måste du kontrollera några saker. Det första att kontrollera är att en smtp-server (mta) körs lokalt. Netstat-kommandot kan berätta att

om en stmp-server som Postfix körs och fortfarande Mail inte går, försök sedan konfigurera Postfix igen till exempel. På Ubuntu / Debian-system kan detta göras med kommandot dpkg-reconfigure

$ sudo dpkg-reconfigure postfix

försök sedan igen, postkommandot och det ska fungera., Om det fortfarande inte gör det, försök att kontakta din serverleverantör.

inga mail från lokala system

om du försöker skicka e-post från din lokala dator till en gmail-adress, skulle din e-post sannolikt avvisas, så försök inte göra det.

detta beror på att vanliga datorer som är anslutna till Internetadressen har en ip-adress som inte är associerad med någon giltig domän som sådan, och gmail verifierar strikt sådana referenser innan du godkänner någon e-post att gå igenom.,

anteckningar och resurser

förutom mailx finns det andra verktyg som Swaks och smtp-cli som kan användas för att skicka e-post från kommandoraden och stödja olika funktioner som att ange smtp-servrar och lägga till bilagor och så vidare.

men mailx-kommandot är tillgängligt i standardförråd av de vanligaste distributionerna, så kan installeras enkelt. Vidare upprätthåller den en syntax som är mycket lik den för e-postkommandot vilket gör det till en droppe i ersättning för det äldre e-postkommandot.,

mailx-kommandot kan även läsa e-post från fjärrservrar IMAP, men det är något vi höll ut ur det här inlägget och skulle prata senare. För att lära dig mer, kolla mansidan för mailx-kommandot med ”man mailx”.

Share

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *