begin process at 2010 02 10 05:46:24
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Formulaires

 > EXMAIL 1.0 PAR STEUF : FORMULAIRE AVEC ENVOI DE PIÈCES JOINTES.

EXMAIL 1.0 PAR STEUF : FORMULAIRE AVEC ENVOI DE PIÈCES JOINTES.


 Information sur la source

Note :
9,9 / 10 - par 10 personnes
9,90 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Formulaires Niveau :Initié Date de création :13/03/2005 Date de mise à jour :20/04/2005 01:12:16 Vu / téléchargé :12 836 / 2 874

Auteur : SteufDu59

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

 Description

EXmail est un formulaire permettant d'envoyer les champs de celui ci à une adresse email. Vous pourrez aussi y joindre un fichier. Il vérifie la syntaxe des adresses email ainsi que les champs obligatoires.
Note importante : Il fonctionne chez Free pour les pièces jointes des Mail.

>   Envoi possible avec piéce jointe
>   Choix du format du mail : Texte ou Html
>   Installation simplifiée
>   Configuration simplifiée
>   Respecte les standarts du web et est conforme au recommandations du W3C
>   Ajout du choix entre la fonction mail() et le SMTP pour envoyer les emails.

NB : Ne faites pas la mise à jour si vous n'avez pas de problème avec la fonction mail() désactivée, c'est version 1.1 n'apporte que la gestion du SMTP pour les serveurs qui n'autorisent pas la fonction mail().


 Conclusion

Vous pourrez le tester ici : http://extantpc.free.fr/index.php?pages=test

Je suis ouvert à toute remarque, et possibilité d'amélioration et/ou rapport de BUG.

 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


 Historique

29 mars 2005 00:16:12 :
V1.4 Correction du BUG d'envoi avec piéce jointe.
15 avril 2005 17:37:01 :
1°/ Changement de nom, le script devient : EXmail 1.0 2°/ Correction de BUG 3°/ Amélioration du code 4°/ Simplification de l'installation et de la configuration 5°/ Inclusion simple dans un site en pseudo frames ( Enléve les entêtes html si le script est exécuter dans une pseudo frame pour respecter les standarts du WEB et éviter tout BUG ) 6°/ Amélioration de la compatibilité avec les divers hébergeurs.
15 avril 2005 17:39:08 :
Erreur d'archive
20 avril 2005 01:12:16 :
Ajout du choix entre la fonction mail() et le SMTP pour envoyer les emails.

 Sources de la même categorie

TESTEUR DE REGEX par hornetbzz
Source avec Zip SE SOUVENIRE D'UN VISITEUR GRACE A UN COOKIE par MoulouD1993
Source avec Zip Source avec une capture CAPTCHA PHP SIMPLE par toutoos
Source avec Zip POSTER, AFFICHER, ... DES NEWS SUR VOTRE SITE par TORA38
CLASS DE CONTRÔLE DE FORMULAIRE par baxterio

Commentaires et avis

Commentaire de HRdesalpes le 14/03/2005 11:40:27

Bonjour peut on avec se script envoyer un fichier dit comme config.txt mais qui n'est pas enregistrer sur le server?

Commentaire de jarodxxx le 14/03/2005 13:51:27

Super script fonctionne parfaitement et je n'ai vue aucun bug apparent ...
Pouratant je recoit beaucoup de mail grace a celui ci , la fonction piec jointe fonnctionne parfaitement elle aussi ...

Toutefois je trouve l'installation un peu dure pour des debutants ...

10/10

Commentaire de SteufDu59 le 14/03/2005 18:44:02

HRdesalpes :

Nous le fichier doit passé par le serveur, sinon on ne peut pas le joindre, mais n'aillez pas de soucis, car le fichier est sur le serveur de façon temporaire, il est juste uploadé, une fois envoyé via la fonction Mail() il est supprimé du serveur.

Commentaire de chanlle le 28/03/2005 14:41:32

Merci pour se script,
Il marche bien mais je debute et j'ai pas compris un truc mais comment on le lit ?
Il est codé, comment faire pour le decoder.
Merci pour votre aide
Mary

Commentaire de SteufDu59 le 28/03/2005 18:04:26

C'est un probléme qui a été décourvert chez certains hébergeurs...

J'ai la solution sans l'avoir puisque les personnes à qui j'ai envoyé le fichier pouvant corriger le probléme, ne m'ont pas dit si cela fonctionnait ou pas... Donc dans le doute, je ne fais pas la modif. Je vous ai contacté en PV en vous donnant mon email, si vous voulez le correctif.

Commentaire de LeReLeR le 13/04/2005 03:17:41

Bonjour,

Dans "monsite.lemien" (site fictif)  j'ai téléchargé dans un repertoire "message" les trois fichiers comme expliqué dans l'installation. Pour le reste j'avoue que je n'ai pas compris.
Quand je fais appel à "www.monsite.lemien/message/contact.php",
le formulaire s'ouvre correctement, je rempli les cases pour essai, mais au moment de l'envoi il me met comme erreur:
"Fatal error: Call to undefined function: getmxrr() in C:\Domains\monsite.lemien\wwwroot\message\form.php on line 55"
N'ayant aucune connaissance au php, je ne sais comment faire pour l'installer correctement.
Un modèle avec des liens, voire des répertoires fictifs serait le bienvenu en mon endroit pour faire une installation correcte où il me suffirait de changer que le nom du site "monsite.lemien" pour en voir le fonctionnement.
Si quelqu'un(e) pouvait me (nous)  venir en aide, cela serait un avantage inespéré !
Un grand merci à tous !
LeReLeR

Commentaire de SteufDu59 le 13/04/2005 10:57:41

Bonjour,

> "Fatal error: Call to undefined function: getmxrr() in C:\Domains\monsite.lemien\wwwroot\message\form.php on line 55"

L'installation est bonne, il n'y a rien de plus à faire, ici le probléme vient du fait que la fonction getmxrr() n'est pas disponible sous un serveur sous Windows... Donc sous vous essayez le script en local, soit, le serveur de votre hébergeur est sous windows.

Pour corriger cela, ouvrez le fichier form.php, cherchez ces lignes :

function CheckEmail( $email )
{
if ( eregi( '^[a-zA-Z0-9_]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$]', $email ) ) {
return false;
}
list( $Username, $Domain ) = explode( '@', $email );
if ( getmxrr( $Domain, $MXHost ) ) {
return true;
} else {
return false;
}
}

Vous remplacez cette fonction par celle ci :

function CheckEmail( $email )
{
  if ( ereg('^[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+'.'@'.'[-!#$%&\'*+\\/0-9=?A-Z^_`a-z{|}~]+\.'.'[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+$',$email ) ) {
      return false;
  }
  else {
      return true;
  }
}

Voilà ça corrigera votre probléme

Commentaire de LeReLeR le 14/04/2005 14:08:18

Bonjour,

Et bien non, après l'avoir installé, le problème n'est pas résolu, car maintenant il m'envoie comme message :

Votre adresse Email n'est pas valide !
Retour au formulaire


Notice: Undefined index: DOCUMENT_ROOT in C:\Domains\lereler-lirelire.org\wwwroot\formulaire\form.php on line 97

Notice: Undefined variable: uploadinfo in C:\Domains\lereler-lirelire.org\wwwroot\formulaire\form.php on line 100

peut-être que je devrai changer de serveur :-) !
J'espère seulement ne pas être le seul à rencontrer ce problème car je ne voudrai pas que ma démarche ne soit inutile.
Alors, au nom des ignorants comme moi, merci car je ne doute pas du travail (en heure) que cela représente !
Cordialement,
LeReLeR


Commentaire de SteufDu59 le 14/04/2005 17:58:59

Je viens de tester, pourtant cette fonction fonctionne très bien, par contre $_SERVER['DOCUMENT_ROOT'] n'a pas l'air dispo chez vous, et je viens de remarquer qu'il y a deux trois erreur dans le fichier form.php...

Bon, je vous contacte en PV, pour corriger votre probléme, et je vais retravailler le fichier form.php ( Je n'ai pas beaucoup fait de mise à jours ces temps ci, parce que je bosse sur un script plus important en ce moment ).

Commentaire de SteufDu59 le 14/04/2005 18:06:37

Oups, erreur, j'ai inverser la fonction pour rien, il faut la remplacer par celle ci :

function CheckEmail( $email )
{
  return ereg('^[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+'.'@'.'[-!#$%&\'*+\\/0-9=?A-Z^_`a-z{|}~]+\.'.'[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+$',$email )

}

De toute façon faut que je vous contact pour le document_root qui est désactivé chez votre hébergeur.

Commentaire de SteufDu59 le 14/04/2005 18:08:25

Pff le boulet je suis fatigué moi... il faut mettre un ; avant }.

Commentaire de chanlle le 14/04/2005 20:15:44

Je vient de trouver la nouvelle erreur et la je m'epate car je n'y connait rien.Il manquait un point virgule ,maintenant c'est top bravo Steuf

function CheckEmail( $email )
{
  return ereg('^[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+'.'@'.'[-!#$%&\'*+\\/0-9=?A-Z^_`a-z{|}~]+\.'.'[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+$',$email );
}

Commentaire de chanlle le 14/04/2005 20:18:06

Bon ok, j'avais pas vut ton deuxieme message sur le point virgule.
Afin comme ça maintenant, il y a plus cas copier-coller.

Commentaire de Kevin007 le 16/04/2005 10:03:17

Pourquoi ne pas utiliser les deux ?

On vérifie si la fonction existe ( function_exists() )

_Renvoie TRUE = Linux, on met le code MX

_Renvoie FALSE = Windows, ereg() ( moins puissant mais cela fonctionne )

Voilà, A+ :D

Commentaire de SteufDu59 le 16/04/2005 19:07:29

Oui je pourrais, mais la fonction getmxrr() pose un autre probléme, car elle repose sur les serveur DNS, si par exemple le serveur n'est pas à jour, la fonction renverra FALSE alors que l'adresse existe belle et bien... La seule façon fiable de détecter la validité d'une adresse c'est l'envoit d'un email de confirmation, c'est peu être ce que je vais intégrer dans la nouvelle version, ainsi que la possibilité d'utiliser SMTP au lieu de la fonction mail() car certains hébergeur ne l'autorisent pas ( Ca m'évitera aussi de faire une classe juste pour la fonction email() chez online ). j'ai déjà deux cas... J'esssaye d'adapter au mieux le script suivant les retours que j'ai pour qu'il soit compatible presque partout et utilisable pour tous... Pas toujours évident ;-)

  J'ai encore quelques reflexions en tête et quelques idées pour simplifier encore l'utilisation du script avec une petite administration ... Mais bon ça sera une version 2.0 pas prevu pour l'instant car je travail sur un projet ( Un livre d'or ) beaucoup plus important depuis 2 mois qui devra s'achever dans 1 mois j'espére, donc entre deux j'essaye de m'occuper du formulaire ;-)

Commentaire de cephalo le 02/06/2005 10:45:08

Bonjour,
je viens de télécharger votre script (pas mal d'ailleurs), seul pb, ça marche pas avec moi ! Auriez-vous une idée de où l'erreur peut provenir, sachant que:
- j'ai configuré le fichier contact.php
> $to = 'mon@adresse.mail';
> $format = 'html'; ou $format = 'texte';
> $foncmail = 'mail'; ou $foncmail = 'smtp';
- j'ai tout balancé sur le serveur de mon hébergeur (bleublancnet) avec un dossier upload
> l'erreur "Language string failed to load" est apparue
> j'ai changé chmod de upload en 777 (précisé nul part d'ailleurs) et j'ai le message "Upload Réussi Formulaire envoyé!"
Donc je suppose que l'envoi s'effectue correctement. Toutefois, et ça va faire une heure que j'attends un fichier .gif de moins de 20ko, je ne reçois rien !???
Why??? Please help me !!!
Y'a-t-il quelque chose que j'ai oublié ?
merci pour votre réponse rapide.
jaz

Commentaire de SteufDu59 le 02/06/2005 11:36:09

Pour le chmod, en effet je ne l'ai pas indiqué, je le ferais dans la prochaine version beaucoup plus avancée ( Pas prévu avant septembre ).

Vous utilisez la fonction mail() ? Aucune erreur n'est apparue lorsque vous avez envoyer le formulaire ?

Si tel est le cas, le problème de ne vient pas de mon script mais du serveur mail() que vous utilisez qui est sans doute en paname... Essayez avec le SMTP ça sera sans doute plus rapide.

Commentaire de arnaud1470 le 28/06/2005 22:36:37

Bonjour , j'ai regarder dans le fichier contact.php , j'ai eu beau chercher , je ne trouve pas où indiquer l'adresse de reception de ce formulaire , et une autre question :
Le poids maxi , peut t'il être changer ? (pour un envois sur un mail gmail.com , ps : mon hebergeur a bande passante illimiter et 200 MO de stockage , et base de donner illimiter aussi)
Donc peut t'il etre changer jusqu'a 10 Mo ?
Si oui , quel est le bon chiffre a indiquer en value ? car pour 500 Ko c'est 500000 ,,mais je ne suis pas du tout bon en math , quel serait le bon nombre pour 10 Mo ? 1000000 ?

Commentaire de SteufDu59 le 30/06/2005 10:55:01

Ligne 29 :

$to = 'test@test.fr' ; // Mettez ici, là ou les adresses emails ( Séparées d'une virgule ) auquels le mail doit être envoyé.


1Ko = 1000 Octets, 500 Ko = 500 000 Octets? 1Mo = 1000 Ko = 1 000 000 octets. 10 Mo ça me paraît beaucoup trop, il me semble que techniquement il n'est pas possible d'aller au dela de 2-3Mo pour une piéce jointe;

Commentaire de arnaud1470 le 30/06/2005 11:56:24

Merci beaucoup de cette reponces , c'est dommage que l'ont ne peut pas aller au dela de 2-3 Mo...
Merci quand meme , je trouverais une autre solution pour ce que je veus ;)
Merci quand meme . et bravo ! :)

Commentaire de PETITDAVID le 05/09/2005 14:48:50

hello

Superbe Script, simple a mettre en oeuvre et fonctionnel...
Merci.

Par contre j'aimerai pouvoir y modifier une chose mais je ne sais trop comment faire.
Au lieux de pouvoir envoyer un fichier, j'aimerai pouvoir en envoyer plusieur (une petite dizaine) si quequ'un a la solution ou un debut de piste????

Merci

Commentaire de SteufDu59 le 14/09/2005 18:08:52

La documentation devrait répondre à votre question : http://www.exinsidephp.com/index.php?page=exmail&inside=documentation#documentation

Commentaire de PETITDAVID le 15/09/2005 12:08:17

en effet Merci....

tres bon boulot....

Commentaire de ludovicanceaux le 15/09/2005 19:33:48

Slt, super ton code, mais dis moi komment fait on pour refermer la fenêtre tout de suite après avoir appuyer sur valider, puis de mettre un genre de messagebox de confirmation.
En fait j'ai essayé un truc mais en fait il execute toute la page (et donc il execute un compteur etc...

echo '<head>';
echo '<SCRIPT Language="JavaScript"> ';
echo 'function fermeture()';
echo '{';
echo 'opener=self; ';
echo 'self.close(); ';
echo '}';
echo '</SCRIPT> ';
echo '</head>';
echo '<body onLoad="fermeture();">';
echo '<script type="text/javascript">alert("Ce formulaire à été envoyé avec succès, Attention cette fenêtre va se fermer!!!")</script>';
echo '</body>';

Commentaire de SteufDu59 le 16/09/2005 10:36:53

Bonjour,

Pourriez vous poser cette question sur le forum officiel pour le support du script ? (http://www.exinsidephp.com/forum/) Il est, AMHA, plus adapté, et sera sans doute utile pour toute la communauté, et de plus je passe assez rarement ici, et je crois même que le script n'est pas à jour ici :-( (Il va falloir que je le fasse d'ailleurs...)

La solution à votre problème semble assez simple, à priori il suffit de placer votre code au bon endroit.

Voilà au plaisir de vous voir sur le forum !

Commentaire de sdesrousseaux le 27/12/2005 02:58:15

salut
merci pour ton code, mais j'ai un petit soucis
je viens de créer un site et j'utilise phpmailer que je connais et utilise depuis pas mal de temps mais jamais essayé avec free
j'ai regardé ce que tu avais fait et je n'ai vu aucune difference avec mon codage
mais il doit y avoir une subtilité car j'ai toujours l'erreur suivante quand je veux envoyer un message

Language string failed to load: connect_host

A priori il n'arrive pas à contacter le serveur smtp, voici une partie de mon script:
   $mail = new PHPmailer();
   $mail->IsHTML(true);
   $mail->IsSMTP();
   $mail->Host = 'smtp.free.fr';
   $mail->Username = 'www.projetx';
   $mail->Password = 'XXXXXXXXX';
   $mail->SMTPAuth = true  ;

le formulaire se trouve à l'adresse: http://www.projetx.free.fr/contact.php

si tu as une petite idee je suis preneur
merci
stéphane

Commentaire de sdesrousseaux le 27/12/2005 11:22:11

re-salut

je viens d'essayer ton script sur un autre site chez free:
http://stephdesrousseaux.free.fr/contact/contact.php

j'ai mis ceci:
$hostsmtp = 'smtp.free.fr'; // Mettez ici l'hôte SMTP par exemple 'smtp.free.fr'
$portsmtp = '25'; // S'il faut utiliser un autre port que le port 25 spécifiez le ici
$authsmtp = true; // Si le serveur demande une authentification laissez true, s'il n'y a pas besoin d'authentification mettez false et
                  // ignorez les champs suivant
$usersmtp = 'stephdesrousseaux'; // Mettez ici le login d'accés au serveur SMTP. Par exemple :  'toto'
$passmtp = 'XXXXXX'; //

est-ce que pour le smtp de free, il faut une authentification?

stephane

Commentaire de cagoulechonchon le 04/06/2008 18:04:19

Ton script est vraiment genial !!
Non seulement il marche (ca peut te paraitre bizare mais ce n'est pas tjrs le cas !) , mais en plus il est super clair ! Je peux donc revenir sur le html et ca c'est top !
Merci !

Commentaire de benetophe le 27/07/2009 21:27:18

Salut et bravo pour le script qui m'a bien dépanné.

Par contre, comment peut-on faire pour limiter les pièces jointes aux images (jpeg, jpg, png, gif)...
Merci pour votre aide car je débute en php...

Merci d'avance et à bientôt.
A+
Benetophe

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
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,671 sec (3)

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