La commande xmail sous Linux fournit un service pour envoyer des e-mails automatiquement par script.
Il existe deux manières de procéder : en utilisant une commande tout-en-un ou en plaçant des configurations dans le profil. La méthode de commande tout-en-un n'a besoin d'aucune autre configuration que la ligne de commande elle-même .
mailx accepte la plupart des configurations dans la ligne de commande directement à partir des options -S au format -S variable[=valeur] (définit la variable d'option interne et, dans le cas d'une option de chaîne, lui attribue une valeur).
lors de la définition à partir d'une variable, le nom de domaine de l'hôte est automatiquement ajouté si la valeur n'en contient pas. Si on souhaite saisir l'adresse de l'expéditeur avec le nom du propriétaire, on peut utiliser, par exemple, le format suivant : -S "from=System User"
La commande tout-en-un suiçvante envoie un e-mail à $TOEMAILADDRESS
mailx -v -s "$EMAIL_SUBJECT" \ -S smtp-use-starttls \ -S ssl-verify=ignore \ -S smtp-auth=login \ -S smtp=smtp://smtp.gmail.com:587 \ -S from="$FROM_EMAIL_ADDRESS($FRIENDLY_NAME)" \ -S smtp-auth-user=$FROM_EMAIL_ADDRESS \ -S smtp-auth-password=$EMAIL_ACCOUNT_PASSWORD \ -S ssl-verify=ignore \ $TO_EMAIL_ADDRESS
Il suffit de remplacer les $…
ci-dessus par la valeur réellement utilisée.
Cette commande demandera le contenu de l'e-mail. Taper le contenu de l'e-mail et après avoir terminé l'e-mail, utilisez Ctrl + d pour dire à xmail qu'on a terminé. Ensuite, ce courrier sera envoyé via le serveur smtp. Pour entrer le contenu du mail, on peut également utiliser un pipe comme celui-ci :
echo "Le contenu du courriel" | xmail -v -s ...
Notes de sécurité sur les mots de passe: Il est préférable de ne pas définir -S smtp-auth-password et de le saisir à chaque fois qu'on utilise cette commande. Les mots de passe de la ligne de commande peuvent être vus par les autres utilisateurs du système.
À propos de nssdb utilisé par mailx:Le nssdb par défaut de la plupart des systèmes Linux devrait déjà être mis à jour. Mais si le système n'a pas de nssdb mis à jour, on peut envisager d'utiliser Firefox à la place en ajoutant cette option: -S nss-config-dir=~/.mozilla/firefox/yyyyyyyy.default/
Le répertoire de profil de Firefox est dans le répertoire personnel qui est généralement dans ~/.mozilla/firefox/yyyyyyyy.default ou yyyyyyyy est une chaîne aléatoire qui est différente pour différents utilisateurs. On peut facilement le trouver en consultant le répertoire ~/.mozilla/firefox
.
On peut écrire la plupart d'entre eux dans le fichier de configuration de xmail/mail ~/.mailrc
set smtp-use-starttls set ssl-verify=ignore set smtp=smtp://smtp.gmail.com:587 set smtp-auth=login set smtp-auth-user=$FROM_EMAIL_ADDRESS set smtp-auth-password=$EMAIL_ACCOUNT_PASSWORD set from="$FROM_EMAIL_ADDRESS($FRIENDLY_NAME)"
Pour une meilleure sécurité, on peut définir le mode de ~/.mailrc
sur 600 par chmod 600 ~/.mailrc.
Les variables définies sont les mêmes que celles utilisées dans la « commande tout en un ».
Lors de l'envoi de mails, utiliser cette commande :
xmail -v -s "$EMAIL_SUBJECT" $TO_EMAIL_ADDRESS
Ou
echo "Le contenu du courrier" | mail -v -s "$EMAIL_SUBJECT" $TO_EMAIL_ADDRESS