begin process at 2008 07 25 12:41:38
1 216 226 membres
190 nouveaux aujourd'hui
14 180 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

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


Information sur la source

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é: 10 937 / 2 603

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

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (28)
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.
Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

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.
  • signaler à un administrateur
    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?

  • signaler à un administrateur
    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

  • signaler à un administrateur
    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.

  • signaler à un administrateur
    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

  • signaler à un administrateur
    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.

  • signaler à un administrateur
    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

  • signaler à un administrateur
    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

  • signaler à un administrateur
    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


  • signaler à un administrateur
    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 ).

  • signaler à un administrateur
    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.

  • signaler à un administrateur
    Commentaire de SteufDu59 le 14/04/2005 18:08:25

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

  • signaler à un administrateur
    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 );
    }

  • signaler à un administrateur
    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.

  • signaler à un administrateur
    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

  • signaler à un administrateur
    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 ;-)

  • signaler à un administrateur
    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

  • signaler à un administrateur
    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.

  • signaler à un administrateur
    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 ?

  • signaler à un administrateur
    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;

  • signaler à un administrateur
    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 ! :)

  • signaler à un administrateur
    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

  • signaler à un administrateur
    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

  • signaler à un administrateur
    Commentaire de PETITDAVID le 15/09/2005 12:08:17

    en effet Merci....

    tres bon boulot....

  • signaler à un administrateur
    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>';

  • signaler à un administrateur
    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 !

  • signaler à un administrateur
    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

  • signaler à un administrateur
    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

  • signaler à un administrateur
    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 !

Ajouter un commentaire

Pub



Appels d'offres

Animation Flash alimen...
Budget : 6 000€
Creation portail video
Budget : 3 000€
Site de e-commerce
Budget : 5 000€

CalendriCode

Juillet 2008
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Boutique

Boutique de goodies CodeS-SourceS