Need help? Chat now!

Hostwinds Tutorials

Zoekresultaten voor:


Inhoudsopgave


Wat is smtp-cli?
Vereisten
Opstelling
Afhankelijkheden
CentOS / Fedora
Ubuntu / Debian
Download de SMTP-CLI-repository
Maak een e-mail wachtwoordbestand
E-mail verzenden met smtp-cli
Hier is de codesjabloon voor een bash-script
En hier is de e-mail die is verzonden
Enkele andere nuttige smtp-cli-argumenten
Probleemoplossen

Hoe smtp-cli te gebruiken om een ​​eenvoudige e-mailverzendagent te maken (Linux)

Trefwoorden: Email,  Linux 

Wat is smtp-cli?
Vereisten
Opstelling
Afhankelijkheden
CentOS / Fedora
Ubuntu / Debian
Download de SMTP-CLI-repository
Maak een e-mail wachtwoordbestand
E-mail verzenden met smtp-cli
Hier is de codesjabloon voor een bash-script
En hier is de e-mail die is verzonden
Enkele andere nuttige smtp-cli-argumenten
Probleemoplossen

Wat is smtp-cli?

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.

Vereisten

  • een externe e-mailserver met uw e-mailaccount
  • een VPS waarvoor e-mail moet worden verzonden
  • Command Line Toegang tot bovenstaande VPS (via SSH of Get VNC)

Opstelling

  • 1 Hostwinds VPS with CentOS 7
  • een cPanel-e-mailaccount
  • de Putty SSH-client zal worden gebruikt voor toegang

Afhankelijkheden

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:

CentOS / Fedora

# yum install -y git

Ubuntu / Debian

# apt-get install -y git

Download de SMTP-CLI-repository

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

Maak een e-mail wachtwoordbestand

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.

E-mail verzenden met smtp-cli

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.

Hier is de codesjabloon voor een bash-script

#!/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

En hier is de e-mail die is verzonden

Enkele andere nuttige smtp-cli-argumenten

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

Probleemoplossen

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