1. Introduction

Lorsqu'on veut envoyer du courrier électronique en utilisant directement Winsock et une connexion à un serveur SMTP, il peut être intéressant de vouloir envoyer des fichiers attachés.

Pour indiquer au serveur SMTP qu'on est en train d'expédier un fichier attaché, on utilise la syntaxe suivante lorsqu'on est en train de transmettre le corps du message:

 
TéléchargerCacher/Afficher le codeSélectionnez

Filename est bien évidemment le nom du fichier (e.g. "monimage.jpg") et XXX correspond aux permissions UNIX d'un fichier dans le cas où celui-ci serait reçu par une machine UNIX (typiquement 664 pour un fichier et 744 pour un exécutable).

Cependant et comme toujours, il y a un hic. Il est impossible de transmettre un fichier binaire encodé sur 8 bits directement dans un courrier électronique qui ne supporte qu'un jeu de caractères de 7 bits (pas de caractères étendus). Et de plus, il ne faut utiliser que les caractères imprimables. Il faut donc procéder à un encodage.

Le principe de l'encodage est le suivant: on prend 3 octets de données (donc 3x8 bits) et on les transforme en 4 morceaux de 6 bits, qu'on complète par des 0 pour avoir un octet ASCII. Ensuite, on ajoute 32 au code ASCII obtenu pour avoir un caractère ASCII imprimable (les 32 premiers ne le sont pas).

La fonction ci-après prend un chemin de fichier (e.g "c:\image\image1.jpg") et retourne une chaîne contenant le fichier encodé.

 
TéléchargerCacher/Afficher le codeSélectionnez

Bien sûr, ce code est un peu rudimentaire, mais il montre bien le principe de la compression UUCP.

Bon courage et bon développement,

grafikm_fr.