jeudi 25 novembre 2010

Envoyer un mail et une pièce jointe en ligne de commande

Envoyer un mail en ligne de commande est relativement facile sous Ubuntu. Enfin, c'est l'impression qu'on a en parcourant le web ... tout est dans le relativement. Il faut chercher mais il y a plusieurs tuto sur internet :
En utilisant ssmtp ou msmtp
Ces deux commandes permettent de configurer une redirection des mails vers un serveur SMTP.

Par contre, ce qu'on je n'avais pas compris tout de suite, c'est qu'une fois le smtp configuré, il faut une autre commande pour envoyer le mail.

Mais ne brûlons pas les étapes :

1) Configurer le SMTP
J'ai utilisé le premier tuto pour configurer ssmtp et ça nous servira pour la suite. Lisez le tuto, c'est facile et bien expliqué. Ci dessous, mon fichier de configuration pour une adresse mail chez yahoo.fr  /etc/ssmtp/ssmtp.conf :

Code:
# Config file for sSMTP sendmail 
# 
# The person who gets all mail for userids < 1000 
# Make this empty to disable rewriting. 
root=nom.prenom@yahoo.fr 

# Nom d’utilisateur du compte email avec lequel vous envoyer les mails 
AuthUser=nom.prénom 

# Mot de passe de ce même compte 
AuthPass=motdepasse 

# The place where the mail goes. The actual machine name is required no 
# MX records are consulted. Commonly mailhosts are named mail.domain.com 
mailhub=smtp.mail.yahoo.fr:465 
#le port 465 c'est pour la connection smtp sécurisée

# Where will the mail seem to come from? 
rewriteDomain=yahoo.fr 

# The full hostname 
hostname=PC-Mamie 

# Are users allowed to set their own From: address? 
# YES - Allow the user to specify their own From: address 
# NO - Use the system generated From: address 
FromLineOverride=YES 

# Utilisation d’une connexion sécurisée SSL/TLS (décommenter pour activer) 
UseTLS=YES 
#UseSTARTTLS=YES
Attention par contre à l'installation du client mail, il ne faut pas installer xmail car il demande la désinstallation de ssmtp. Il vaut mieux installer mailutils. Dans notre cas, il est inutile d'installer l'un ou l'autre. Ceci ne nous permet que d'envoyer des mails mais sans pièces jointes. A toutes fins utiles pour envoyer un mail il suffit de taper la commande :
Code:
echo Contenu du message | mail -s "TEST" email@destinataire.com -a From:email@expediteur.com
Si on ne remplis pas correctement le From: avec l'adresse e-mail de l'expéditeur, le programme envoie From:nomd'utilisateurd'UBUNTU (ici From:PC-mamie) et la boîte mail renvoie une erreur 553 = adresse de l'expéditeur non reconnue.


2) Installer un client mail

Comme dit juste au dessus, il faut bien choisir le client mail. Et pour gérer les pièces jointe, ce qui nous intéresse, il faut un client complet . J'ai nommé :


C'est vraiment horrible, comment des gens ont pus avoir l'idée de faire ce truc là? C'est un client mail complet, uniquement en ligne de commande. L'interface c'est le terminal, et dans le terminal, vous pouvez écrire votre mail, mettre les adresses, joindre des fichiers etc... Franchement il faut être taré pour utiliser ça plutôt qu'un client mail avec une vrai GUI (Graphical user interface = interface graphique ) genre Thunderbird.

Mais pour mon problème, il est bien utile quand même. On rédige le mail dans Mutt, on met la pièce jointe et mutt fait suivre à ssmtp qui envoie le mail au serveur SMTP distant (ici yahoo).

Mes premiers essais m'ont renvoyé toujours la même erreur 553. Pour contourner le problème il suffit de créer un fichier de mise en page type des mail, qui contient le From: + éventuellement le sujet et le corps du mail.
Pour utiliser cette mise en page par défaut il suffit d'utiliser la commande :
Code:
mutt -H /chemin_vers/monfichier.txt 
 Et voici le contenu de mon fichier texte :

    from:nom.prenom@yahoo.fr
    to:nomdu.destinataire@yahoo.com
    subject:truc de la mamie

   Ci-joint le document scanné par mamie.

 Dans la commande mutt il n'est même pas la peine de définir un destinataire car c'est celui du fichier ci dessus qui est utilisé.

 Mais alors, ça sert à quoi d'envoyer un mail en ligne de commande avec une pièces jointe? C'est pas la mamie qui va ouvrir le shell et gérer ses mails dans mutt, si?

... Ah, Ah, suite au prochain épisode!
Ordinateur pour grand-parents, ordinateur pour papy, ordinateur pour personnes âgée, linux pour mamie, linux pour papy, linux pour personne âgée, linux pour grands-parents.

Aucun commentaire:

Enregistrer un commentaire