Hostwinds Tutorials
Zoekresultaten voor:
Inhoudsopgave
Om beter te begrijpen wat SMTP-CLI is, laten we het hebben over wat het niet is;SMTP-CLI is geen e-mailserver of relaisagent;Het is ook geen manier om hoge volumes post te sturen.Het is een e-mailclient waarmee u tekst-, html-, bestanden en afbeeldingen kunt verzenden vanaf de opdrachtregel en scripts.
In plaats van een andere e-mailserver te maken, kunt u SMTP-CLI gebruiken om updates van uw VPS (s) via een e-mailaccount op afstand te verzenden om de gezondheid of status te controleren. U kunt ook een cron-taak opzetten om logboeken door te sturen als onderdeel van Server Security Hardening. Hierdoor kan uw server meer of minder onbeheerd uitvoeren, tenzij er fouten worden gevonden of worden de limieten benaderd.
We zullen Git gebruiken om het SMTP-CLI-script uit GitHub te pakken. Als u het nog niet hebt geïnstalleerd, kunt u het als volgt installeren:
# yum install -y git
# apt-get install -y git
# git clone https://github.com/mludvig/smtp-cli.git
Het SMTP-CLI-script (het gedeelte van de runs) bevindt zich in een directory die SMTP-CLI wordt genoemd, en binnen is een bestand genaamd SMTP-CLI (de -l-vlag in de opdracht laat ons kijken naar de bestandsattributen om te controleren of het is uitvoerbaar).
# ls -l smtp-cli
Als die "X" in plaats daarvan zijn "-", voert u deze opdracht uit om het bestand uitvoerbaar bestand te maken.
# chmod +x smtp-cli/smtp-cli
Nu kunnen we testen om te zien of het werkt.
# smtp-cli/smtp-cli
Wat zou moeten resulteren in een fout als deze
Vreemd om een fout goed te laten zijn, maar aangezien we alleen maar testen om er zeker van te zijn dat het script gedownload en uitvoerbaar is, is dat alles wat we nu nodig hebben.
Nu gaan we ons globale PAD controleren (waar de VPS controleert wanneer ik dingen vanaf de opdrachtregel uitvoer zonder een volledig pad)
# echo $PATH
En kopieer de smtp-cli naar de user sbin directory binnen je standaard PATH.
# cp smtp-cli/smpt-cli /usr/local/sbin
ls -l /usr/local/sbin/smtp*
Nu kunnen we SMTP-CLI uitgeven vanuit elke map op de VPS zonder u zorgen te maken over het volledige pad naar het bestand.
Omdat het plaatsen van uw niet-versleuteld wachtwoord in een script vrijwel het meest onzeker is, om nog maar te zwijgen van moeilijk, een manier om een wachtwoord te beheren, zullen we een bestand maken dat onze wachtwoordinformatie bevat. Hierdoor kunnen we ons wachtwoord eenvoudig bijwerken en een kwaadwillende acteur op zijn minst laten zoeken naar de informatie.
Omdat ik als de root-gebruiker gebruik en een root Cronjob maakt, staat dit bestand in de / root / map. Uw Cron-taak kan in uw gebruiker Crontab zijn, afhankelijk van de rechten die u door uw systeembeheerder wordt verleend, in welk geval u dit in de / huis / gebruikersnaam kunt opslaan.
# touch /root/.passwd
echo 'SomeRandomPassword' > /root/.passwd
Merk op dat de "Somerandompassword" de PLIFE-tekst van uw daadwerkelijke e-mailwachtwoord voor uw externe e-mailaccount moet zijn.
Nu komen we bij het goede deel, het verzenden van een e-mail als onderdeel van een script of vanaf de opdrachtregel. Ik ga het testen door het bestand dat we hebben gemaakt te verzenden als onderdeel van onze vnstat-gids.
Let op: in het $ (een commando) gedeelte hieronder kan een commando inline worden uitgevoerd en de uitvoer van dat commando als invoer voor het argument gebruiken.
# smtp-cli --verbose --server mail.emaildomain.TLD:587 --enable-auth --user smtp-cli_guide@emaildomain.TLD --pass $(cat /root/.passwd) --from smtp-cli_guide@emaildomain.TLD --to test2@emaildomain.TLD --subject VPS-stats --attach /var/www/html/vps_bandwidth_stats.png
Nu we weten dat het werkt, kunnen we de opdracht in een bash-script of cron-taak plaatsen.
#!/etc/bash
smtp-cli --verbose --server mailservername.emaildomain.TLD:587 --enable-auth --user login-user@emaildomain.TLD --pass $(cat /root/.passwd) --from email_orinator@emaildomain.TLD --to email_destination@emaildomain.TLD --subject subject-line --attach /full/path/filename.tosend >> /path/to/logfile.log
--help
--body-plain=<text|filename>
--body-html=<text|filename>
Hoewel dit voorbeeld de mogelijkheid bood om scripts of cronjobs in te stellen, kan deze eenvoudige mailer ook mail versturen met globale variabelen of output voor andere controlescripts; Al deze tools kunnen eenvoudige waarschuwingen of complexe diagnostische gegevens naar uw e-mail sturen op basis van een regelmatig interval of een activerende gebeurtenis.
Verschillende problemen kunnen ontstaan bij het gebruik van het script. Het eerste nummer is hoe uw mailserver authenticeert. Voert u een volledig e-mailadres in of gewoon een gebruikersnaam? Dat is wat je nodig hebt na het ruzie-argument. In het voorbeeld wordt ervan uitgegaan dat u het volledige e-mailadres invoert als de -User. Gebruik welke inloggegevens die u normaal voor uw server gebruikt.
Het tweede probleemgebied is het –from-veld. Zorg ervoor dat dit het e-mailaccount is waarop u zich aanmeldt. U kunt geen e-mail verzenden vanaf een account waar u geen controle over heeft.
De derde is de servernaam en poortselectie van het veld -Server. Deze naam moet een volledig gekwalificeerde domeinnaam zijn van uw uitgaande e-mailserver, gevolgd door een: Portnumber. De standaardpoorten voor SMTP zijn 25, 587, 465.
Ten slotte moet het veld-voor-veld een geldig e-mailadres zijn, of het zal nooit een bestemming bereiken.
Geschreven door Paul Schene / juli- 10, 2020