<spanclass="tomenu"><ahref="#navigation">↓ Menu ↓</a></span>
<spanclass="flush"></span>
</div>
</div>
<divid="titre">
<h1>Mail en ligne de commande avec un fichier join</h1>
</div>
<divclass="flush"></div>
<divid="afterheader"class="article">
<divclass="corps">
<p>J’ai dû envoyer un mail en ligne de commande récemment. Quelle ne fût pas ma surprise lorsque je constatais que ce n’était vraiment pas évident. Je n’avais ni <code>pine</code> ni <code>mutt</code>. Seulement <code>mail</code> et <code>mailx</code>.</p>
<p>Ce qu’on trouve sur internet pour envoyer un mail avec fichier attaché c’est ça :</p>
<divclass="sourceCode"id="cb1"><preclass="sourceCode zsh"><codeclass="sourceCode zsh"><aclass="sourceLine"id="cb1-1"title="1">uuencode fic.jpg fic.jpg <spanclass="kw">|</span> mail -s <spanclass="st">'Subject'</span></a></code></pre></div>
<p>Bon, alors, bête et discipliné j’ai essayé. Et bien, ça marche <em>presque</em> tout le temps. Pour mon fichier ça n’a pas marché du tout. Je l’ai compressé au format <code>.gz</code>, <code>.bz2</code> et <code>.zip</code>. Avec le format <code>.bz2</code> le mail reçu avait bien un fichier attaché. Mais avec les formats <code>.gz</code> et <code>.zip</code>, ça ne fonctionnait pas. Au lieu d’avoir un fichier attaché j’avais un message qui contenait quelque chose comme :</p>
Après pas mal de recherche j" ai trouvé la solution. Le problème c'est `uuencode` qui est une méthode qui devrait devenir obsolète pour envoyer les fichiers. Il vaut mieux utiliser le format MIME pour envoyer des fichiers attachés. Donc finalement le mieux est de faire ça "à la main" avec `sendmail`. Je n'ai quand même pas utilisé `telnet`. La commande à lancer est : ~~~~~~ {.zsh} sendmail -t -oi <mailcontent.txt~~~~~~Bienentenduilfautcréerlefichier`mailcontent.txt`quicontient:<pre>
From: from@mail.com
To: to@mail.com
Subject: View the attached file
Mime-Version: 1.0
Content-Type: multipart/mixed; boundary="-"
This is a MIME encoded message. Decode it with "Decoder"
or any other MIME reading software. Decoder is available
<p>Et voilà. Parfois la technique c’est tellement simple. Si j’en ai besoin encore quelques fois, je pense que j’écrirai un émetteur de mail en shell.</p>