Formulaire permettant d'envoyer un e-mail (avec pièces jointes) depuis une page

Soyez le premier à donner votre avis sur cette source.

Vue 40 748 fois - Téléchargée 49 974 fois

Description

Ce script est, en fait, celui de LiTtleBuBu (http://www.phpcs.com/code.aspx?ID=22574) que j'ai mis à jour.

Certains problèmes ont été résolus et des nouveautés ont été rajoutées.

- La classe 'Mail' de LiTtleBuBu, qui faisait partie du fichier formail.php, a été séparée des paramêtres spécifiques ainsi que du code qui exécute l'envoi. Ceci permet d'y voir plus clair (d'un côté le code de la classe 'Mail', de l'autre le code spécifique du développeur).

- Par défaut, il n'y a pas de test stricte de l'adresse de l'expéditeur (l'utilisateur lambda!). En fait, un test se fait sur le serveur mail supposé de l'utilisateur et, si le serveur n'est pas atteignable, le sujet du mail que reçoit le destinataire (dans mon cas, moi-même!) est sanctionné d'un '[Adresse (exp@domaine_inconnu.net) non reconnue!]'. Quant à l'utilisateur, il reçoit un mail lui confirmant l'envoi.
Donc, même si le serveur de l'utilisateur n'est pas reconnu, l'envoi s'effectue quand même; ce qui permet à l'expéditeur possédant une adresse chez caramail (qui est en fait lycos!) de pouvoir m'envoyer des mails... ... Dans le cas où l'on veut faire le psychopathe, il suffit modifier le fichier 'PHPFormMail.php' afin de tester si la fonction 'checkExp' retourne 'vrai' avant d'envoyer l'e-mail. On ne reçoit donc plus les mails des serveur non reconnus... Mais ceci est à double tranchant, car on ne reçoit plus les mails des serveurs reconnus, mais qui refusent les accès telnet. Il faut choisir!

- D'après plusieurs forum, il paraît que des robots s'attaquent à de tels formulaires en essayant de placer, dans un des champs du formulaire, l'en-tête d'un autre mail dont la copie conforme cachée est destinée à beaucoup d'autres personnes.
Le problème que pose ce genre de robot est que l'on peut vite voir son nom de domaine banit car assimilé à un spamer! Ainsi, un test à été rajouté pour ne pas envoyer de mail si, dans les champs provenant du formulaire, il apparaît des mot-clés d'un header.

- Etc. (je vous laisse découvrir les autres menus changements!)

Encore une fois, ce code est repris de celui de LiTtleBuBu (http://www.phpcs.com/code.aspx?ID=22574); je vous encourage donc à aller y jeter un coup d'oeil afin de mieux le comprendre.

Pour finir, je dirai que le formulaire html reste très basic; en ce sens qu'il faudrait encore lui rajouter du code (client-side, ex: JavaScript) afin que le formulaire ne puisse être posté s'il les champs ne répondent pas à des critères spécifiques (comme la syntaxe de l'adresse de l'expéditeur par exemple). J'utilise déjà un 'petit' script pour cela; je pense qu'il serait bon que de le mettre on-line.

Conclusion :


Normalement, le code de la classe 'Mail' est prévu pour permettre l'envoi de multiple pièces jointes. Toutefois, le formulaire html ainsi que le code dans le fichier PHPFormMail.php n'en n'utilise qu'un seul...
Il n'est pas difficile d'imaginer un code un peu plus dynamique pour gérer un nombre arbitraire de pièces jointes!

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

donperez
Messages postés
1
Date d'inscription
mercredi 11 octobre 2006
Statut
Membre
Dernière intervention
15 février 2011

BS
BS
Je viens de mettre en ligne sur mon serveur le formulaire en question et voici les erreurs signalés.
-------------------------oooooo-----------------------
+OK POP3 ready <1513414009.1297360860@pop1-g25.free.fr>

Warning: copy(../PHPMail_TempUpload/Image-38.jpg) [function.copy]: failed to open stream: No such file or directory in /public_html/Formu_piece_jointe/PHPFormMail.php on line 102
Class Mail, method attach : file ../PHPMail_TempUpload/Image-38.jpg can't be found
--------------------------oooooo-------------------------

Donc si quelqu'un veux bien me donner un coup de main pour résoudre le problème, moi je me perds pas mal dans les entrailles du code « php »

Un grand merci
Cordialement
Perez
cs_Stormo
Messages postés
1
Date d'inscription
lundi 28 décembre 2009
Statut
Membre
Dernière intervention
20 avril 2010

Hello,

je suis un peu nul en codes sources...
Pour la version ".htm" où faut-il mettre l'adresse email du destinataire du formulaire ?
wlperso
Messages postés
9
Date d'inscription
lundi 20 septembre 2010
Statut
Membre
Dernière intervention
20 septembre 2010

Bonjour,

je ne connais pas grand chose à PHP et au fonctionnements SMTP ... je suis très débutant.
J'essaie de configurer le script pour fonctionner sous hébergement gratuit iFrance + envoi avec SMTP GMAIL, mais vraiment sans succès ; je n'arrive même pas à décomposer pour débugger le fonctionnement.
Bref un vrai nul !
Quelqu'un peut-il m'aider ?
Merci d'avance
horinal
Messages postés
11
Date d'inscription
vendredi 6 février 2009
Statut
Membre
Dernière intervention
18 février 2011

Bonjour
J'aimerais demande un aide s'il vous plait

je suis un débutant du code, membre d'un groupe de bénévole en Afrique on viens de créer notre site internet d'association et on aimera qu'on puisse permettre a nos visiteur d'envoyer un pièces joints directement sur nos formulaire.
si il y a une personne de bonne volonte veuillez s'il vous nous aide. notre e-mail: info@horinal.com et notre site internet www.horinal.com details sur le formulaire
Nom:
Prénom:
Ville:
Pays:
Tél:
Sujet:
Message:
et Pièeces Joints:

merci de votre aide veuillez directement nous envoyer le code sur info@horinal.com / info@groupthefuture.com ou horinal@live.com
merci
lcomb
Messages postés
11
Date d'inscription
dimanche 3 octobre 2004
Statut
Membre
Dernière intervention
10 mai 2008

Salut les gars je connais bien ce code j ai une question
je me suis fais un formulaire en local qui renvois sur un phpform sur mon site en post ca marche tout bien sauf le fichier joint je crois c est par ce que je suis en local et je post sur mon site est ce que c est ca ? C'est de la logique pure .Comment faire pour develloper en local avec une connection internet ,est ce en changeant l adresse de l uplaod ca marcherai ? je vous laisse j ai un rendez vous si je cherche un gars qui devellope en solution mail pour programmer emsemble merci a plus

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.