begin process at 2012 05 27 21:26:48
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

E-Mail / Messagerie

 > FORMULAIRE EMAIL AVEC PIECE JOINTE REPRIS DE LITTLEBUBU

FORMULAIRE EMAIL AVEC PIECE JOINTE REPRIS DE LITTLEBUBU


 Information sur la source

Note :
9,6 / 10 - par 5 personnes
9,60 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :E-Mail / Messagerie Classé sous :PHPformulaire, formulaire, email, phpmail, piecejointe Niveau :Initié Date de création :25/09/2009 Vu / téléchargé :8 676 / 1 665

Auteur : cfndiaye

Ecrire un message privé
Site perso
Commentaire sur cette source (39)
Ajouter un commentaire et/ou une note

 Description

CE SCRIPT REPREND CELUI DE LiTtLeBuBu QUI AVAIT DES ERREURS
Ce script met un formulaire sur son site qui permet aux visiteurs d'envoyer un email au webmaster
via un formulaire.
La nouveauté est que ce script permet au visiteur de mettre un fichier joint avec son message.
Le fichier joint est uploadé sur le serveur puis détruit une fois le mail envoyé.

INSTALLATION

/*Ce script ne fonctionne pas sous Online ou Nexen (et ne fonctionnera d'ailleurs jamais sur ces serveurs. J'ai
tout essayé et j'ai contacté le support technique, ils ont tellement bien modifié leur fonction email()
qu'il est impossible de l'utiliser avec ce script)*/ TEXTE VENANT DE LiTtLeBuBu

Créer un répertoire et uploader les deux fichiers dedans
Dans le fichier formail.php remplacer dans la ligne $dest="..." l'adresse email par la votre

Créer un répertoire "upload" au même niveau que le répertoire que vous avez créé (pas dedans, à côté  )

Et voila...



 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources de la même categorie

Source avec Zip Source avec une capture FORM TO MAIL AVEC PROTECTION PAR TOKEN ET CAPTCHA CONTRÔLES ... par cod57
Source avec Zip Source avec une capture FORMULAIRE VERS COURRIEL BASIQUE AVEC CONTRÔLE CAPTCHA ANTI ... par cod57
Source avec Zip CHAT EN PHP ET JQUERY par pitchoubrazil
Source avec Zip Source avec une capture FORMULAIRE DE CHOIX MULTI-CONTACT VALIDE XHTML 1.0 TRANSITIO... par aventurier19
Source avec Zip Source avec une capture WEB MESSENGER par EvildarkEurope

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture FORM TO MAIL AVEC PROTECTION PAR TOKEN ET CAPTCHA CONTRÔLES ... par cod57
Source avec Zip Source avec une capture FORMULAIRE VERS COURRIEL BASIQUE AVEC CONTRÔLE CAPTCHA ANTI ... par cod57
Source avec Zip Source avec une capture CLASSE DE MESSAGERIE par janhsh
Source avec Zip CLASS D' ENVOIE DE MAIL EN SMTP par ImmortalPC
Source avec Zip FORMULAIRE PERMETTANT D'ENVOYER UN E-MAIL (AVEC PIÈCES JOINT... par triumphs

Commentaires et avis

Commentaire de VestaX le 28/09/2009 08:26:47

Hmm, c'est bien ce qu'il me semblait. Ce n'est rien de plus qu'un formulaire avec upload de fichier, et non pièce jointe. C'est ca que je recherche avec pièce jointe. Mais vraie pièce jointe :)

Sinon pour ta source, le code est propre, mais vraiment beaucoup beaucoup beaucoup de lignes juste pour un simple envoi!!!

Commentaire de masternico le 28/09/2009 08:39:05

je ne suis pas de cet avis, il s'agit réellement d'un attachement... avec upload préalable mais ça c'est comme pour tout les webmails... je le trouve plutôt pas mal écrit, il faudra que je le teste pour voir comment il fonctionne...
Par contre, l'idée de laisser a un utilisateur inconnu la possibilité de balancer une pièce jointe... glups... ça me fait froid dans le dos question sécurité...

Commentaire de VestaX le 28/09/2009 09:08:20

Ben quand tu envoi des mails avec pièces jointe via outlook ou autre, c'est pareil. La sécurité n'est pas pour autant meilleure. J'en ai déjà vu des sources avec "vraies" pièces jointe. et non pas "upload". Car le problème de l'upload, c'est qu'il faut faire le nettoyage a chaque fois coté FTP. C'est ca le problème.

Ou alors faudrais une partie admin permettant de nettoyer les fichiers à chaque fois.

Commentaire de masternico le 28/09/2009 09:35:44

Même dans le cas de 'vraies' pièces jointes comme tu dis, il faut bien que le fichier soit transmit au serveur distant avant de pouvoir être attaché au mail qui va partir. Ou alors, il existe une subtilité de php que je ne connais pas. Donc de toutes façons, il faudra bien 'uploader' le fichier...

Pour ce qui est de la sécurité dont je parlais, c'est par rapport à cette phrase:
'La nouveauté est que ce script permet au visiteur de mettre un fichier joint avec son message'

Cela sous entent que cette fonctionnalité est laissé à disposition de TOUS les visiteurs du site. Personnellement, en tant que webmaster, je ne me vois pas laisser quelqu'un me bombarder de mail avec pièce jointe car c'est  donner la possibilité de recevoir du spam voir même des virus...

Ce script à plus d'intérêt au seins d'une console admin dans laquelle un utilisateur authentifié peut envoyer un ticket de support avec une pièce jointe concernant son problème.

>>'Ou alors faudrais une partie admin permettant de nettoyer les fichiers à chaque fois.'
apparemment le script efface tout seul le fichier temporaire uploadé, donc pas besoin de se tracasser avec le nettoyage.

Commentaire de cfndiaye le 28/09/2009 13:10:28

au fait ce code est juste une correction que j'ai apporté sur celui de littlebubu
pourquoi je l'ai fait:
au fait j'avais un client qui avais besoin d'un formulaire avec fichier joint pour que ses candidats puissent lui envoyer leur cv.
pour la sécurité je ne suis pas cassé la tete le laisse soin aux antivirus et antispam lol

Commentaire de masternico le 28/09/2009 15:06:10

Il y a une technique qui consiste à modifier un champ caché par un script qui valide le formulaire avant de le faire partir vers le serveur et cela parce que les bots ne savent pas (encore) interpréter le javascript.

Explication:

Un bot de spam qui repère un formulaire d'envoi de mail sur un site va tenter d'activer le formulaire 'à la mano' en appelant la page fournie dans le paramètre action du form et en remplissant toutes les variables du formulaire. Ex:
<form action="send_email.php" method="GET">
<input type="text" name="nom">
<input type="text" name="prenom">
<input type="text" name="email">
</form>

Il au bot d'appeler la page avec les arguments suivant:
send_email.php?nom=zareazer&prenom=iouopiu&email=ozieuroz@ezr.com

Le script send_email.php n'y voit que du feu et envoi le mail au webmaster.

Par contre, il suffit de changer le form comme ceci:
<form action="send_email.php" method="GET" onsubmit="return valid_form(this)">
<input type="hidden" name="chkform" value="nope">
<input type="text" name="nom">
<input type="text" name="prenom">
<input type="text" name="email">
</form>

et de rajouter:
<script type="text/javascript">
function valid_form(form_pointer)
{
    // on controle la validité des différents champs
    // et si tout se passe bien on termine par ceci:
    this.chkform = 'yep';
    return true;
}


Ce qui fait que lorsque le bot trouve la page, il voit bien le champ caché mais il le laisse à la même valeur sans se douter que le script de validation va, lui, en modifier le contenu.

Du coup, dans le script send_mail.php, il suffit de tester si chkform == 'yep'. Sinon, c'est une tentative d'attaque par bot.

Simple mais efficace.

Commentaire de cfndiaye le 28/09/2009 18:21:35

cool merci  du conseil

Commentaire de VestaX le 29/09/2009 08:32:03

masternico exact, la pièce jointe doit effectivement etre stockée sur le serveur. Mais lors de la réception du mail, elle ne doit plus y être. Et c'est ca que je cherche. J'ai pourtant bien étudié le protocole mail, mais je reste toujours sans réponse. Il faudrais que la pièce s'efface du serveur des l'ouverture du mail

Commentaire de masternico le 29/09/2009 10:17:15

Salut Vestax,
je pense que tu mélanges deux choses :
Il y a d'un côté le gestionnaire de fichiers et de l'autre la gestion des mails. Le protocole mail comme tu dis ne peux en aucun cas supprimer un fichier.

C'est à toi de le supprimer manuellement à la fin de l'envoi de mail. Ex:

//construction des headers et du body du message puis envoi
mail($destinataire,$objet,$body,$header);
unlink($chemin_vers_fichier_upload);

Maintenant, tu peux aussi utiliser la classe proposé ici car il est marqué:
'Le fichier joint est uploadé sur le serveur puis détruit une fois le mail envoyé.'

Ce qui je pense répond à ton besoin

Commentaire de 6rilmx le 07/10/2009 17:33:13

Salut à vous.
Ce formulaire est propre, merci.

Mais j'ai une gêne, quand j'envoie un document, impossible de l'ouvrir, étant donné qu'il ne pèse que 0,0ko lol
pourtant, je retrouve bien son nom dans le mail que je reçois, mais il n'y a que le nom... "la gallerie photo ne peut pas afficher cette image car il s'agit d'un fichier vide" ...

Commentaire de cfndiaye le 07/10/2009 20:13:43

SALUT 6rilmx regarde bien les paramettres de ton serveur de notre coté ça marche nikel

Commentaire de 6rilmx le 07/10/2009 20:53:29

Où puis-je configurer les types de fichiers pris en compte par le serveur ?
Je pense que c'est un soucis par rapport au type MIME ou au nom de fichier (?)

Commentaire de 6rilmx le 07/10/2009 20:56:16

Désolé pour le double post, mais j'ai une autre question :
Si je configure celà, est-ce pour mon ordi uniquement ? Car je souhaiterais faire ça pour mon site en fait...

Commentaire de cfndiaye le 08/10/2009 15:40:51

tout dépend de la configuration du serveur qui va herberger ton code

Commentaire de 6rilmx le 08/10/2009 16:07:34

Mon hébergeur est OVH. Je n'ai pas vu comment régler ça. C'est dommage... je débute.

Commentaire de cfndiaye le 08/10/2009 17:06:19

fait un teste avec le script depuis ovh pour voir les résultat

Commentaire de ramanavy le 11/11/2009 16:45:37

Désolé, moi aussi je suis chez Ovh, mais le fichier fait 0 ko à chaque fois, quelqu'un peut me donner un coup de main ? est ce que ça marche pour toi CFNDIAYE ?

Commentaire de ramanavy le 11/11/2009 17:11:32

Après des tests, c'est la boîte au lettre qui n'accepte pas les fichiers attachés :
- sur hotmail.com ou hotmail.fr 0ko à chaque fois!
- sur gmail.com et orange.fr, tout fonctionne nickel

Encore merci pour le code.

Commentaire de begin974 le 12/11/2009 17:25:02 8/10

Bonjour,

j'ai testé ce code. il est super! Au faite ramanavy, j'ai pas de problème avec les boîtes hotmail.
Par contre lorsque j'insère le code dans une boucle pour envoyer à plusieurs destinataires récupérés dans une table de données, cela ne fonctionne pas. le mail est envoyé une seule fois.
Auriez vous une idée svp?

Commentaire de ibaom le 20/12/2009 18:49:00

tres efficace,
merci

Commentaire de deadrefused le 18/01/2010 16:01:56

Salut

Super le code marche bien pour moi.
Je veut juste rajouter des champs.
Ce n'est pas un problème dans la page form.html, c'est fait.
Par contre dans la page formmail.php j'ai suivi les instructions de LITTLEBUBU sur son post
mais ça ne marche que pour un champ en plus...
Comment récupérer plusieurs champs rajouté ?

Merci de votre aide

ALain

Commentaire de ludm le 21/02/2010 19:34:39 10/10

Fonctionne parfaitement sur serveur OVH mutualisé, merci!

Commentaire de goyter le 19/03/2010 16:51:26

Salut,

Super script, mais ça bloque pour moi chez ovh pour des pièces jointes de plus de 1 Mo est ce que par hasard quelqu'un aurait une piste ?

Merci à vous

Commentaire de goyter le 23/03/2010 11:17:17 10/10

Au temps pour moi, il fallait juste modifier le nom du fichier formmail.php

Commentaire de Ticlic le 09/04/2010 09:25:54

Un grand bravo pour le travail de correction du script original. Maintenant, ça marche nickel-chrome.

Commentaire de cfndiaye le 09/04/2010 10:29:12

Merci Ticlic

Commentaire de Ticlic le 09/04/2010 10:42:18

C'est moi qui te remercie. Non seulement ton script fonctionne à merveille, mais il est tellement bien renseigné qu'un grand débutant en PHP de 62 balais comme moi y retrouve ses billes. Je ne saurais assez insister sur l'importance des codes bien renseignés et du choix des noms des variables. Sur ce plan, rien ne tombe sous le sens. Et ton code est un modèle du genre.

Commentaire de bobyones le 05/08/2010 18:24:06

Fonctionne maintenant avec chrome. un grand bravo.

Commentaire de jmaster le 27/08/2010 22:40:34 10/10

Bravo et merci beaucoup +++++

Commentaire de sartoz le 24/10/2010 19:34:56 10/10

un bon gros 10 , bravo pour ton script j'avais besoin pour envoyer des fichiers via formulaire voila , c'est trouver
en plus tu n'obliges la personne de mettre expediteur , sujet , message
c'est vraiment genial! car moi enfaite j'avais juste besoin de la fonction envoi fichier alors du coup dans le form.html j'ai juste laisser:

<tr>

<td>Fichier joint:</td>

<td><input type="hidden" name="MAX_FILE_SIZE" value="900000"><input name="NomFichier" type="file" size="10"></td>

</tr>

<tr>



<td>

<div align="left">

<input type="submit" value="Envoyer"></div>

</td>

</tr>


ce qui permet de juste envoyer un fichier , et CA MARCHE , merci

Commentaire de sartoz le 24/10/2010 20:10:57

par contre si tu pouvais mixer un autre code en utilisant ce code la: http://www.phpcs.com/codes/FORMULAIRE-INSCRIPTION-PRET-EMPOIE_27119.aspx
qui est super simple (qui ne permet pas d'attacher de piece jointe)

d'utiliser son code et d'y rajouter les lignes de ton code pour joindre un fichier je pense que ca ferais un sacré truc

Commentaire de deady512 le 28/03/2011 12:57:50

Bonjour,

Votre script est génial !

J'aimerais juste ajouter une liste déroulante pour choisir l'adresse mail d'envoie. J'avais pensé à ceci dans

<td><select name="desti" size="1" style="width: 213px">
<option value="mail1@xx.fr" selected="selected">mail 1</option>
<option value="mail2@xx.fr">mail 2</option>
</select></td>

mais alors il y a une erreur de synthaxe du coté de formmail.php...

        $dest = ($_POST['document.form.desti.value']);  

Merci de me donner un coup de main !!

Commentaire de cfndiaye le 28/03/2011 16:38:48

essai
$dest = $_POST['desti'];

Commentaire de deady512 le 28/03/2011 17:22:10

Ok c'est déjà mieux !

Mais il me fais un mot comme quoi
"Class Mail, method Mail : invalid address"

La " function CheckAdresses( $aad ) " qui n'accepte pas mon adresse mail. Pourtant pas moyen de trouver plus banale ! XXXXXX@live.be
(et j'ai ajouté le be dans la " function ValidEmail($address) "

Quelqu'un a une idée ?! C'est assez important ! Merci !

Commentaire de deady512 le 29/03/2011 10:01:42

Je cherche je cherche mais je ne tombe pas sur la bonne syntaxe !! Si quelqu'un peut m'aider pleas !!

Commentaire de lucaristide le 30/03/2011 09:00:56

Bonjour
formulaire ok
Mais je souhaite ajouter:
-un Champ "Tel"  
-et une liste déroulante "Adhérents, Renseignements"
J'ai crer les champs suppléméntaires dans form.html
Mais je n'arrive pas à envoyer les infos à l'adresse email

Merci de votre aide
Hary

Commentaire de lucaristide le 17/04/2011 08:40:11

Pour DEADY512
Bonjour voici une solution
dans form.html
Ajouter Choix multiple

<select name="destinataire" size="3">
option value="adresse1@xxx.fr">Bureau</option>
<option value="adresse2@xxx.fr">webmaster1</option>
<option value="adresse3@xxx.fr">Webmaster2</option>
<option value="adresse4@xxx.fr">Webmaster4</option>

</select>

Remplacer dansformmail.php
$dest="adresse@xxx.fr";

par
$dest=$_POST['destinataire'];

Commentaire de ringostare le 05/10/2011 20:38:18

bonjour,
merci pour le script.
J'aimerai demander le nom du bonhomme, j'ai rajouté ceci dans mon code html :
<tr>
<td>Votre Nom:</td>
     <td><input type=text name=realname size=35></td></tr>
<tr>
mais je ne sais pas ce que je dois faire dans le fichier "formail"

merci à vous.

Commentaire de elcapo125 le 18/05/2012 16:21:30

bravo

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

AIDEZ MOI !!! Formulaire et Email [ par xevslipknot ] XeVsLiPkNoTJ'aimerai savoir un trucG fai mon formulaire htmlJe recupere les valeur sur une autre page en phpMais j'aimerai aussi les recuperer en mail Mail et formulaire [ par Jackboy ] J'aimerai créer un formulaire, assez complexe (pas seulement email, nom, message,...) et j'aimerai avoir ce formulaire envoyer dans un email et format formulaire pour e-mail invisible [ par pyranhaz ] Bonjour,Je cherche à élaborer un formulaire php afin que les clients de mes petites annonces puissent envoyer leur réponse sans connaître le e-mail du formulaire en email vers deux adresses [ par metis15 ] Bonjour,toujours ce script qui se termine comme ça pour m'envoyer le formulaire par mail :$recipient = "moi@wanadoo.fr";$subject = "FormulaireGT";$mai Email en php sans formulaire aide merci ! [ par escrow ] bonsoir , apres avoir nivagué des heures et des heuresje n'ai pas reussi a trouver un code php qui me permet d'envoyer un email sans formulaire de cet email formulaire [ par astrolabbcracker ] bonjour, apr&#232;s avoir lutt&#233; pendant 2 heures pour trouver mon bonheur, finalement d&#233;&#231;u, je me lance pour vous poser une question.je récupérer automatiquement un adresse email dans un formulaire envoyé en php3 [ par motosbikes ] Bonjour, quelqu'un pourrait il me dire comment faire pour récupérer automatiquement l'adresse email d'une personne qui valide un formulaire envoyé sur formulaire [ par thikomoon ] Rebonjour à tousdébutant php, je cherche un fichier source de formulaire pour mettre sur mon siteafin de recolter des email sur mon email seul petit h Mini formulaire... [ par lard ] Bonjour,Je débute en PHP donc soyez indulgent....Voici ma demande:Sur une page Web, je voudrais que les utilisateurs puissent entrer leurs adresses Em Question sur le formulaire (vérification email) [ par developvbdebut ] Bonsoir tout le mondeJe souhaiterai savoir si il y a un code qui permet de v&#233;rifier si c'est bien une adresse email qui &#224; &#233;tait rentr&#


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,530 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales