Formulaire contact et envoi Mail

page classique d’un site web , le formulaire de contact qui permet a une personne de se renseigner et contacter l’administrateur. nous allons voir comment mettre tout ça en place .

ENVOI DE MAIL

première étape pour faire fonctionner un formulaire qui envoi un message de contact , l’envoi de mail. nous allons voir ici l’envoi SMTP avec une live box orange et une messagerie GMAIL ( le smtp utilise la messagerie gmail pour envoyer les mails).

installer un service SMTP:

nous allons ici utiliser msmtp et mta , ils ont remplacé ssmtp devenu obsolète même si c’est celui que l’on trouve le plus souvent en recherche google.

sudo apt-get install msmtp msmtp-mta

configurer la sécurité de gmail et generer un mot de passe d’application:

la sécurité de gmail doit être configurée pour generer un mot de passe utilisable dans le fichier de config (point suivant)

ouvrez votre compte gmail correspondant au mail gmail utilisé par la suite et cliquez dans l’option “securité” du menu du compte:

ensuite aller dans la fenêtre “connexion a google” , vous devriez normalement avoir l’option “validation en 2 étapes” d’activée . si ce n’est pas le cas il faudra l’activer pour pouvoir profiter de la génération d’un mot de passe d’applications extérieures accédant a la boite gmail. cliquez dans la case mot de passe des applications.

ensuite il faudra ressaisir votre identifiant et votre mot de passe puis saisir le code reçu sur votre smartphone par sms ( issu de la validation en 2 étapes) vous aurez ainsi une fenêtre du type ci dessous:

dans “sélectionner une application” choisir “messagerie” et dans” sélectionner un appareil”, choisissez “autre” et saisissez un nom , par exemple “raspberri pi” puis cliquez sur la case bleu “GENERER”, une fenêtre s’ouvre avec une serie de 4 valeurs comme ci dessous (exemple).

notez ces valeurs sur un papier , il faudra les mettre dans “passwordgmail” du fichier de configuration(point suivant).

configurer le SMTP pour utilisation via GMAIL:

une fois le paquet msmtp installé et le mot de passe gmail généré , il va falloir créer un fichier de config appelé msmtprc dans lequel on va spécifier un certain nombre de données et paramètres utiles a msmtp et permettant la redirection via gmail. le fichier doit être installé dans le répertoire raspberry Pi “/etc“. voici la commande shell pour créer ce fichier:

sudo nano /etc/msmtprc

voici ci dessous, un contenu basique , version passe partout (qui fonctionne bien dans mon cas) a mettre dans ce fichier config avec l’éditeur nano , il comporte un compte (account) nommé “default” qui sera utilisé pour l’envoi de mail . le “passwordgmail” a utiliser est celui généré par gmail dans le point précédent.

account default
host smtp.gmail.com
protocol smtp
auth on
user moncompte@gmail.com
password: passwordgmail
tls on
tls_starttls on
from moncompte@gmail.com
maildomain gmail.com
port 587

TEST SMTP

il reste maintenant a tester le fonctionnement de l’envoi de messages mail avec msmtp. pour cela nous allons créer un petit fichier message dans le répertoire /etc avec nano:

sudo nano etc/demo_email

dont voici le contenu

from: Name <monmail@gmail.com>
to: <destinataire@toto.fr>
subject: Test
ceci est la premiere ligne
​​​​​​​ceci est la deuxieme ligne

commande Shell de test d’envoi mail du message

reste a taper une commande shell pour envoyer le contenu du fichier .le mot “default” correspond au compte “defaut” du fichier de config “msmtprc” plus haut . il est possible de créer plusieurs comptes dans msmtprc de façon a envoyer differents mail via differents comptes .

cat demo_email | msmtp -a default destinataire@toto.fr

si vous ouvrez votre boite mail destinataire , vous devriez trouver un mail avec le contenu du fichier demo_email.

envoi de mail avec pièces jointes :

en utilisant la commande ci dessous positionné dans un répertoire comportant un fichier “filename.ext”

/Downloads $ mutt -a filename.ext -s "fichier" --destinataire@toto.fr

on envoi un mail avec le fichier joint.

FORMULAIRE DE CONTACT

première chose a faire , une petite page html permettant d’afficher un formulaire et de saisir le texte dans les case avec un bouton “Envoyer

le code html du formulaire :

<HTML>
<HEAD>
<TITLE>E-Mail Formulaire</TITLE>
</HEAD>
<BODY>
<FORM method="POST" action="envoi.php">
<P>Votre nom:<br>
<INPUT type="text" name="nom" size=30>
</p>
<P>Votre adresse E-Mail:<br>
<INPUT type="text" name="email" size=30>
</p>
<P>Message:<br>
<textarea name="message" cols=30 rows=5></textarea>
</p><INPUT type="submit" value="Envoyer">
</FORM>
</BODY>
</HTML>

le resultat:

et le fichier php qui envoi le contenu :