Script Bash pour envoyer un e-mail

Bash Script Send Email



Le courrier électronique est un moyen de communication très courant dans le monde d'aujourd'hui. N'importe qui peut facilement communiquer ou partager n'importe quel document avec des amis, des membres de la famille et des collègues en envoyant l'e-mail. Généralement, les gens utilisent n'importe quel serveur de messagerie gratuit comme Gmail, Yahoo, Hotmail, etc. pour envoyer l'e-mail. Mais vous pouvez facilement envoyer des e-mails à partir de la ligne de commande dans le système d'exploitation Linux. Il existe de nombreuses façons d'envoyer des e-mails sous Linux. Certains moyens courants et faciles d'envoyer des e-mails dans le système d'exploitation Ubuntu à partir du terminal sont présentés dans ce didacticiel.

Initialisation :

De nombreuses commandes Linux sont disponibles pour envoyer des e-mails à partir de la ligne de commande ou en utilisant un script bash. Mais toute commande d'envoi d'e-mails ne fonctionnera pas si aucun serveur SMTP n'est configuré correctement dans le système. Vous pouvez configurer votre propre serveur SMTP pour envoyer des e-mails à partir de la ligne de commande ou vous pouvez utiliser n'importe quel serveur SMTP gratuit de n'importe quel fournisseur de services de messagerie bien connu comme Gmail ou Yahoo. Le serveur SMTP d'un compte Gmail est utilisé dans ce tutoriel. Pour effectuer cette tâche, vous devez sélectionner un compte Gmail et activer l'option 'Autoriser les applications moins sécurisées' pour que ce compte envoie l'e-mail. Vous pouvez visiter le tutoriel suivant pour activer cette option.







https://linuxhint.com/how-to-send-email-from-php/



Après avoir activé cette option, vous devez ouvrir le fichier ‘ /etc/ssmtp/ssmtp.conf’ avec le privilège ‘root’ et ajouter les lignes suivantes à la fin du fichier. Vous devez définir votre adresse e-mail sur 'AuthUser' et votre mot de passe e-mail sur 'AuthPass' pour terminer la configuration.



UtiliserSTARTTLS=OUI
DeLigneRemplacer=OUI
racine=admin@exemple.com
centre de messagerie=smtp.gmail.com :587
AuthUser=nom d'utilisateur@gmail.com
AuthPass= mot de passe

Exemple-1 : Utilisation de la commande Sendmail

L'une des commandes d'envoi de courrier électronique les plus courantes de Linux est « sendmail ». L'utilisateur peut facilement envoyer des e-mails à partir de la ligne de commande en utilisant cette commande. Si le package Sendmail n'est pas installé sur le système, exécutez la commande suivante pour installer le package.





$sudoapteinstallerssmtp

Supposons que le contenu de l'e-mail soit stocké dans un fichier nommé 'email.txt' avec le contenu suivant. Ici, le texte après le « Sujet : » sera envoyé en tant qu'objet de l'e-mail et la partie restante sera envoyée en tant que corps de l'e-mail.

email.txt



Objet : Envoi d'e-mails via sendmail
Tester le corps de l'e-mail

Exécutez la commande « sendmail » avec l'adresse e-mail du destinataire comme la commande suivante.

$envoyer un mailNom d'utilisateur@gmail.com<email.txt

Exemple-2 : Utilisation de la commande « mail »

La commande la plus courante pour envoyer des e-mails sous Linux est la commande `mail`. Cette commande n'est pas installée sur Ubuntu par défaut. Exécutez la commande suivante pour installer la commande `mail`.

$sudoapteinstallermailutils

La commande suivante affichera la version de cette commande si elle est installée dans le système.

$courrier-V

L'option '-s' est utilisée dans la commande 'mail' pour définir l'objet de l'e-mail. Exécutez la commande 'mail' par l'option '-s' avec l'objet de l'e-mail et l'adresse e-mail du destinataire comme la commande suivante. Il demandera Cc: adresse. Si vous ne souhaitez pas utiliser le champ Cc :, laissez-le vide et appuyez sur Entrée. Tapez le corps du message et appuyez sur Ctrl+D pour envoyer l'e-mail.

$courrier-s 'matière'Nom d'utilisateur@gmail.com

Si vous souhaitez ajouter le corps du message électronique dans la commande, utilisez '<<<’ operator like the following command.

$courrier-s 'Objet du message'Nom d'utilisateur@gmail.com<<< 'tester le corps du message'

Vous pouvez également ajouter l'adresse e-mail de l'expéditeur avec la commande `mail` en utilisant l'option '-a'. La commande suivante enverra l'e-mail avec l'objet, « objet du message », le nom et l'adresse e-mail de l'expéditeur, « Admin<[email protégé]>’ et l’adresse e-mail du destinataire,[email protégé]et le corps du message, « message de test ».

$ courrier-s 'Objet du message' De : Admin<administrateur@exemple.com >
Nom d'utilisateur@gmail.com<<< 'message de test'

Vous pouvez également envoyer un corps de message électronique en utilisant les commandes echo et pipe( | ). La commande suivante utilise la commande pipe (|) pour envoyer le corps du message.

$chassèrent 'message de test' |courrier-s 'Objet du message'Nom d'utilisateur@exemple.com

Le courrier électronique peut être envoyé à plusieurs destinataires en utilisant la commande « mail » et en ajoutant les adresses des destinataires en séparant des virgules. La commande suivante sera envoyée par e-mail à deux destinataires.

$courrier-s « Email de test »nom d'utilisateur1@exemple.com , nom d'utilisateur2@exemple.com<test.txt

Exemple-3 : Utilisation de la commande `mutt`

Comme la commande `mail`, la commande `mutt` n'est pas installée sur Ubuntu par défaut. Exécutez la commande suivante pour installer la commande `mutt`.

$sudoapteinstallercabot

La commande `mutt` fonctionne de manière similaire à la commande `mail` mais la commande `mutt` a son propre éditeur pour envoyer l'e-mail. Exécutez la commande suivante avec l'adresse e-mail valide pour envoyer l'e-mail.

$chassèrentmessage de test|cabot-s 'Test de l'e-mail'Nom d'utilisateur@exemple.com

Vous pouvez joindre n'importe quel fichier en utilisant l'option '-a' avec la commande 'mail' ou 'mutt'. La commande suivante joindra le fichier items.txt lors de l'envoi de l'e-mail.

$chassèrent 'message de test' |cabot-s 'Objet du message' éléments.txt-Nom d'utilisateur@gmail.com

Exemple 4 : Utilisation de la commande « SSMTP »

Une autre commande de courrier électronique est la commande `ssmtp`. Si ssmtp n'est pas installé avant, installez d'abord le package. La commande d'installation de ssmtp est illustrée dans l'exemple-1. Les commandes ssmtp et sendmail fonctionnent de la même manière.

Exécutez la commande suivante avec l'adresse e-mail valide. Tapez l'objet et le corps de l'e-mail. Appuyez sur ctrl+D pour quitter et envoyer l'e-mail.

$nom d'utilisateur ssmtp@gmail.com

Exemple-5 : Utilisation de la commande mailx

Vous pouvez envoyer du contenu HTML en tant que corps d'e-mail sans simplement envoyer le message texte. Créez un fichier HTML nommé 'test.html' à utiliser comme corps de message.

test.html

< html >
< corps >>
< h3 >Envoi d'e-mails</ h3 >
< font Taille='2' Couleur='rapporter'>Test du corps du message</ font >
<</ corps >
</ html >

La commande `mailx` fonctionne comme la commande `mail`. Vous devez mentionner Content-Type as text/html pour envoyer du contenu HTML comme corps du message dans la commande `mailx`. La commande suivante enverra le contenu du fichier 'test.html' comme corps du message électronique.

$ mailx « Type de contenu : texte/html » -s 'Envoi d'e-mails en utilisant mailx'
<test.html' [email protégé] '

Lorsque vous vérifierez la boîte de réception du compte de messagerie du destinataire, la liste des e-mails s'affichera comme l'image suivante.

Conclusion

Après avoir correctement pratiqué les commandes ci-dessus, espérons que le lecteur pourra facilement envoyer des e-mails à partir de la ligne de commande sous Linux.