Envoyer des mails depuis un serveur unix avec mailx!

La méthode mailx est très largement utilisée pour envoyer des mails depuis un serveur unix. Problème, dans la majorité des sources que l’on trouve sur internet on peut soit envoyer une pièce jointe, soit envoyer un contenu …. A la limite en passant par un fichier plat certaines méthodes permettraient d’envoyer un texte suivi de fichier texte … bref pas top!

Rassurez vous, rien de bien sorcier pour arrivez à vos fins! Pour envoyer un « message » au « destinataire » depuis l’adresse mail « mailFrom » avec en objet « object » et en pièce jointe « ficlog » … c’est la commande suivante!

(echo « ${message} \n » ; uuencode ${ficlog} ${ficlogName}) | mailx -s « ${object} » -r « ${mailFrom} » « ${destinataire} »

Dans la première partie on concatene le texte du message avec le fichier « ficlog ». Le retour a la ligne est très important pour séparer les deux éléments. Il est nécessaire de transcoder le fichier avec uuencode afin que le mail reconnaisse un encodage de pièce jointe. Dans le mail, le fichier aura comme nom le contenu de la variable « ficlogName ». Le reste du mailx est assez classique … bien évidement pour que le mail parte il faut que au niveau système le serveur de mail ait été bien paramétré!

Vous n’êtes pas obligés de mettre des guillemets autours des variables mais au moins pas de problème avec les espaces si vous entrez en dur du texte à la place d’une variable!

Les commentaires sont fermés.