Git --projet-boite-à-outils

La page de contact

Moyen de contact

La présence d'une page de contact sur un tel site s'impose. Mais je n'avais pas envie de laisser mon adresse courriel en clair, ni celle de ma collègue de travail. J'ai donc décidé de créer une page dynamique contenant un formulaire permettant de nous envoyer des messages.

Comme mon hébergement supporte notamment PHP et ASP.Net j'avais le choix de la technologie. J'ai choisi de la réaliser à l'aide d'une page .cshtml qui est interprétée sans configuration supplémentaire de ma part comme une page utilisant le moteur de vue Razor. Comparé au couple page .aspx et fichier de code behind .aspx.cs traditionel de l'ASP.Net, cette solution à l'avantage de tenir dans un unique fichier.

Code source

Contrairement au reste du code, écrit en Perl, qui est renvoyé par le serveur en tant que texte brut, il s'agit là d'un fichier exécutable et exécuté par IIS. Je ne peux donc pas créer un lien de consultation ou de téléchargement qui se base sur le fichier présent sur le serveur.

C'est pourquoi je vous fournis le lien vers le fichier sur github.

Envoi de mail

L'envoi d'email programmaticallement nécessite des informations de connexions à un serveur SMTP, qu'il faudra passer à l'API éponyme. Cependant écrire ces informations en dur dans le code est une mauvaise idée, notamment pour la maintenance mais aussi et surtout pour la confidentialité : le code est destiné à être publié publiquement, partagé et pourquoi pas réutiliser par des étudiants des années futures.

Heureusement le framework .net permet de déporter le problème vers le fichier web.config dont nous avons déjà parlé. Je peux donc partager mon code sans soucis ; les autres utilisateurs utiliseront leurs propres identifiants de connexion.

web.config (anonymisé)
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <system.webServer>
        <staticContent>
            <mimeMap fileExtension=".pl" mimeType="text/plain" />
        </staticContent>
    </system.webServer>
    <system.net>
        <mailSettings>
            <smtp from="site_projet_bao">
                <network host="xxx" port="587" password="xxx"
                         userName="xxx" defaultCredentials="false" />
            </smtp>
        </mailSettings>
    </system.net>
    <appSettings>
        <add key="mailLouis" value="xxx" />
        <add key="mailDiane" value="xxx" />
    </appSettings>
</configuration> 

Les deux valeurs de configuration supplémentaires ajoutées (mailLouis et mailDiane) permettent de configurer les adresses où seront envoyés les messages générés par le site.

Bien évidemment ce fichier ne se trouve pas dans le code du projet. Si une modification du fichier web.config référencée dans le projet est pushée sur git, il faut que je mette en ligne la version fonctionnelle à la main.