Need help? Chat now!

Hostwinds Tutoriels

Résultats de recherche pour:


Table des matières


Qu'est-ce que smtp-cli?
Conditions préalables
Installer
Dépendances
CentOS / Fedora
Ubuntu / Debian
Téléchargez le référentiel SMTP-CLI
Créer un fichier de mot de passe email
Envoi de courrier avec smtp-cli
Voici le modèle de code pour un script bash
Et voici l'e-mail qui a été envoyé
Quelques autres arguments utiles smtp-cli
Dépannage

Comment utiliser smtp-cli pour créer un agent d'envoi de courrier simple (Linux)

Mots clés: Email,  Linux 

Qu'est-ce que smtp-cli?
Conditions préalables
Installer
Dépendances
CentOS / Fedora
Ubuntu / Debian
Téléchargez le référentiel SMTP-CLI
Créer un fichier de mot de passe email
Envoi de courrier avec smtp-cli
Voici le modèle de code pour un script bash
Et voici l'e-mail qui a été envoyé
Quelques autres arguments utiles smtp-cli
Dépannage

Qu'est-ce que smtp-cli?

Pour mieux comprendre ce que SMTP-CLI est, parlons de ce que ce n'est pas;SMTP-CLI n'est pas un serveur de messagerie ou un agent de relais;Ce n'est pas non plus un moyen d'envoyer des volumes élevés de courrier.C'est un client de messagerie qui permet d'envoyer du texte, du code HTML, des fichiers et des images de la ligne de commande et des scripts.

Au lieu de créer un autre serveur de messagerie, vous pouvez utiliser SMTP-CLI pour envoyer des mises à jour à partir de votre (s) VPS via un compte de messagerie distant pour surveiller la santé ou le statut. Vous pouvez également configurer un travail cron pour transférer les journaux dans le cadre du durcissement de la sécurité du serveur. Cela permet à votre serveur de fonctionner plus ou moins sans surveillance, sauf que des erreurs ne sont trouvées ou que des limites sont approchées.

Conditions préalables

  • un serveur de messagerie distant avec votre compte de messagerie
  • a VPS that requires mail to be sent outbound
  • Accès en ligne de commande au VPS ci-dessus (via SSH ou Get VNC)

Installer

  • 1 VPS Hostwinds avec CentOS 7
  • un compte de messagerie cPanel
  • le client Putty SSH sera utilisé pour l'accès

Dépendances

Nous utiliserons GIT pour saisir le script SMTP-CLI de GitHub. Si vous ne l'avez pas déjà installé, vous pouvez l'installer comme ceci:

CentOS / Fedora

# yum install -y git

Ubuntu / Debian

# apt-get install -y git

Téléchargez le référentiel SMTP-CLI

# git clone https://github.com/mludvig/smtp-cli.git

Le script SMTP-CLI (la pièce Les exécutions) se trouve à l'intérieur d'un répertoire appelé SMTP-CLI, et à l'intérieur est un fichier appelé SMTP-cli (le drapeau -l de la commande nous permet de consulter les attributs de fichier pour vous assurer qu'il est sûr qu'il est exécutable).

# ls -l smtp-cli

Si ces "x" sont à la place "-", exécutez cette commande pour rendre le fichier exécutable.

# chmod +x smtp-cli/smtp-cli

Maintenant, nous pouvons tester pour voir si cela fonctionne.

# smtp-cli/smtp-cli

Ce qui devrait entraîner une erreur comme celle-ci

C'est bizarre d'avoir une erreur, mais comme nous testons juste pour nous assurer que le script est téléchargé et exécutable, c'est tout ce dont nous avons besoin pour le moment.

Maintenant, nous allons vérifier notre PATH global (où le VPS vérifie quand j'exécute des choses à partir de la ligne de commande sans chemin complet)

# echo $PATH

Et copiez le smtp-cli dans le répertoire sbin de l'utilisateur dans votre PATH par défaut.

# cp smtp-cli/smpt-cli /usr/local/sbin
ls -l /usr/local/sbin/smtp*

Maintenant, nous pouvons exécuter SMTP-CLI à partir de n'importe quel répertoire du VPS sans vous soucier de l'inclusion du chemin complet du fichier.

Créer un fichier de mot de passe email

Parce que placer votre mot de passe non crypté dans un script est à peu près le plus sûr, sans parler de manière difficile à gérer un mot de passe, nous créerons un fichier contenant nos informations de mot de passe. Cela nous permet de mettre à jour notre mot de passe facilement et de rendre un acteur malveillant au moins à rechercher les informations.

Étant donné que je suis en train d'exécuter en tant qu'utilisateur root et crée une racine Cronjob, ce fichier sera dans le répertoire / racine / racine. Votre travail cron peut être dans votre utilisateur Crontab en fonction des privilèges que vous êtes accordé par votre administrateur système, auquel cas vous pouvez stocker cela dans le nom / Nom d'utilisateur.

# touch /root/.passwd
echo 'SomeRandomPassword' > /root/.passwd

Notez que «Somerandompasswordword» devra être le plaintext de votre mot de passe de messagerie réel pour votre compte de messagerie à distance.

Envoi de courrier avec smtp-cli

Nous arrivons maintenant à la bonne partie, l'envoi d'un e-mail dans le cadre d'un script ou depuis la ligne de commande. Je vais le tester en envoyant le fichier que nous avons créé dans le cadre de notre guide vnstat.

En guise de note, la partie $ (some command) ci-dessous permet à une commande d'être exécutée en ligne et d'utiliser la sortie de cette commande comme entrée pour l'argument.

# 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

Maintenant que nous savons que cela fonctionne, nous pouvons placer la commande dans un script bash ou une tâche cron.

Voici le modèle de code pour un script bash

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

Et voici l'e-mail qui a été envoyé

Quelques autres arguments utiles smtp-cli

--help
--body-plain=<text|filename>
--body-html=<text|filename>

Bien que cet exemple fournisse la possibilité de configurer des scripts ou des cronjobs, ce mailer simple peut également envoyer du courrier en utilisant des variables globales ou une sortie pour d'autres scripts de surveillance; Tous ces outils peuvent envoyer des alertes simples ou des données de diagnostic complexes à votre courrier électronique en fonction d'un intervalle régulier ou d'un événement déclencheur.

Dépannage

Plusieurs problèmes différents peuvent survenir lors de l'utilisation du script. Le premier numéro serait comment votre serveur de messagerie authentifie. Entrez-vous une adresse e-mail complète ou juste un nom d'utilisateur? C'est ce dont vous aurez besoin après l'argument -User. L'exemple suppose que vous entrez l'adresse e-mail complète comme -Utilisateur. Utilisez quelles informations d'identification vous utilisez normalement pour votre serveur.

Le deuxième domaine problématique est le champ –from. Assurez-vous qu'il s'agit du compte de messagerie auquel vous vous connectez. Vous ne pouvez pas envoyer de courrier à partir d'un compte que vous ne contrôlez pas.

Le troisième est le nom du serveur et la sélection de ports du champ -Server. Ce nom devrait être un nom de domaine entièrement qualifié de votre serveur de messagerie sortant, suivi d'un: PortNumber. Les ports standard pour SMTP sont 25, 587, 465.

Enfin, le champ -Pour doit être une adresse électronique valide ou n'atteint jamais une destination.

Écrit par Paul Schene  /  juillet 10, 2020