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