EXMail

EXMail 2EXmail 2.0 est un classe PHP5 qui vous permettra de mettre en place un formulaire de contact sur votre site en quelques minutes, et ceci sans avoir à toucher à quelque code HTML que ce soit. Simple à mettre en place, il comporte néanmoins des fonctionnalités avancées pour les plus avertis d’entre vous. Voici un petit aperçu des possibilités d’EXmail 2 :

  • Mise en place d’un formulaire de contact simple en moins de 5 minutes !
  • Personnalisez le en mettant autant de champs que vous le désirez, sans avoir à faire de code HTML
  • Gestion d’upload multiples
  • Envoyez l’email à autant de contacts que vous le souhaitez
  • Bénéficiant d’un moteur de template, personnalisez chaque formulaire selon vos envies
  • Le template par défaut vous assure un code XHTML strict valide
  • Son architecture lui permet d’être utilisé dans des scripts suivant le modèle MVC
  • Le script est capable de gérer le « multilanguage »
  • Envoyez l’email au format Text ou Html
  • Possibilité d’ajouter un Captcha pour éviter tout spam sur votre formulaire
  • Si la fonction mail() n’est pas supportée par votre hébergeur, le script peut être configuré pour utiliser un serveur SMTP
  • Pour les plus avertis, vous pouvez étendre la classe pour ajouter de nouvelles fonctionnalités !

Système requis :

  • PHP 5.1.3 Minimum (Merci Ishko pour la précision)
  • Librairie GB (Facultatif, nécessaire pour le cryptogramme visuel)

Documentation : Voir la documentation d’EXMail 2

EXmail

EXmail 2 Beta 3
zip Téléchargé 4315 fois

  • #1 écrit par Moon
    about 1 year ago

    Salut,

    j’essais d’installer le script, mais ca marche pas, je comprends rien :/

    ca donne :
    The server encountered an unexpected condition which prevented it from fulfilling the request.
    The script had an error or it did not produce any output. If there was an error, you should be able to see it in the error log.

    Pour tant mon serveur roule sous PHP Version 5.2.12, et GD Support is enabled.

    J’ai rien touché, juste un copier/coller … ca marche pas.

    Merci pour ton aide.

  • #2 écrit par Mimas
    about 1 year ago

    Bonjour,

    J’essaie de mettre en place Exmail qui m’a l’air d’être un bon produit. Tout marche impec sauf que j’ai des backslash sur les mails reçus devant les apostrophes. J’utilise le format texte avec la fonction mail().
    Que faut il que je rectifie afin que ce beau joujou soit parfait ?

    Merci par avance pour tes conseils.

  • #3 écrit par Steuf
    about 1 year ago

    Bonjour,

    La beta 3 est disponible et devrait corriger le problème.

    Changelog Beta 3 :

    - Ajout PHPDocs sur les méthodes de la class Exmail
    - Modification de la méthode de validation des emails
    - Modification de la méthode isEmpty
    - Ajout de la méthode cleanMagicQuote permettant la compatibilité avec les serveurs avec les magic_quotes activés
    - Compatibilité (suppression message Warning) avec PHP 5.3

    Voilà

  • #4 écrit par Mimas
    about 1 year ago

    Bonsoir,

    L’introduction de la méthode cleanMagicQuote a bien réglé le problème.
    Merci pour ton investissement et pour les autres amélioration apportées.
    PHPDoc semble en effet intéressant.

    Il ne me reste plus qu’à me former dans la manipulation du Xml afin de pouvoir formater le message de l’email envoyé.

    Encore merci et bravo pour cet utilitaire web.

  • #5 écrit par david
    about 9 months ago

    Bonjour,

    Super produit, installé en quelques minutes !
    Toutefois, j’ai deux problèmes :
    - Tous les formats (extensions) fonctionnent, mais si le visiteur met une extension en majuscule (JPG, au lieu de jpg), il a un message d’erreur mentionnant que son extension n’est pas valide.

    - L’upload multiple ne fonctionne pas chez moi. Il me marque une erreur.

    Voici le code :
    $mail->addUpload(‘Photo 1′,$obligatory = true,$removed = true,$extentions = array(‘jpg’,'JPG’,'png’,'gif’,'bmp’));

    $mail->addUpload(‘Photo 2′,$obligatory = false,$removed = true,$extentions = array(‘jpg’,'JPG’,'png’,'gif’,'bmp’));

    J’ai tout essayé pour l’extension, l’indiquer dans le array, laisser le array vide, j’ai même rajouter les extensions en majuscule dans le PHPmailler.class

    Pour l’envoi multiple, je pense que c’est un conflit des mêmes variables… (addupload… il aurait fallu peut-être addupload1, addupload2) , je voulais tenter de rajouter la fonction addupload2 dans le exmail2.class.php… mais est-ce que ça suffira ?? j’suis pas pro :)

  • #6 écrit par david
    about 9 months ago

    EDIT :
    L’envoi multiple fonctionne, seulement si le visiteur ajoute autant de fichier que de champs upload. Exemple : 2 upload = 2 images….

    Si il met une seule image(ou fichier) alors qu’il y a deux upload possible, ça marche pas… (erreur : vous devez spécifier un fichier de téléchargement)

    J’ai beau mettre à false 1 sur deux, mettre à false les deux, idem ;-)

    Merci d’avance

  • #7 écrit par david
    about 9 months ago

    EDIT 2 :

    Toutes mes excuses pour ces trois posts. Enfin, ça peut servir à quelqu’un ;-)

    J’ai trouvé !!! :) ))

    Voici comment faire :

    $mail->addUpload(‘Photo 1 (obligatoire): ‘,$obligatory = true,$removed = true,$extentions = array(‘jpg’,'JPG’,'png’,'gif’,'bmp’));

    $mail->addUpload(‘Photo 2 (facultatif): ‘,$removed = true,$extentions = array(‘jpg’,'JPG’,'png’,'gif’,'bmp’));

    Comme vous pouvez le constater, il suffit de retirer la variable « $obligatory » sur le champs non obligatoire !

    Par contre, pour l’extension, toujours bloqué :(

  • #8 écrit par Steuf
    about 8 months ago

    Bonsoir David,

    Désolé pour le retard de ma réponse. Pour le problème des extensions, il n’y a en fait aucun soucis… L’application gère très bien les majuscules et minuscules (même si la méthode n’est pas très classe j’avoue).

    Par contre votre utilisation des méthodes « addUpload » est erronée. Vous ne devez pas écrire:

    $mail->addUpload(‘Photo 1′,$obligatory = true,$removed = true,$extentions = array(‘jpg’,’JPG’,’png’,’gif’,’bmp’));
    $mail->addUpload(‘Photo 2′,$obligatory = false,$removed = true,$extentions = array(‘jpg’,’JPG’,’png’,’gif’,’bmp’));

    Je pense que vous avez confondu dans le documentation la présentation des paramètres des méthodes et l’utilisation de celle-ci… Si vous écrivez :

    $mail->addUpload(‘Photo 1′,true,true,array(‘jpg’,’JPG’,’png’,’gif’,’bmp’));
    $mail->addUpload(‘Photo 2′,false,true,array(‘jpg’,’JPG’,’png’,’gif’,’bmp’));

    Je pense que cela fonctionnera bien mieux…

  • #9 écrit par David
    about 8 months ago

    Bonjour,

    Merci pour votre réponse, et pas d’inquiétude, je comprends parfaitement que vous ayez d’autres choses à faire :)

    Effectivement, je n’ai pas essayé la méthode que vous spécifiez. Je vais essayer. J’ai du confondre ^_^

    Merci beaucoup, et bravo pour votre travail.

    Dave

  • #10 écrit par Dominique
    about 2 months ago

    Bonjour,

    Formidable tout ça il me semble. SI je suis pas mal côté css, côté php je ne sais à peu près qu’insérer du code…

    Malgré les commentaires et exemples précédents je n’arrive pas pas à faire un envoie de fichiers non obligatoire qui accepte les extensions en majuscule…

    faut-il modifier 1 ou 2 fichiers ?
    snif.

    ensuite j’ai bien compris qu’on peut déterminer un nombre max de signes dans un champs, mais pour un nombre minimal ?

    Si vous pouvez m’aider un grand merci,

    Dominique

  • #11 écrit par Dominique
    about 2 months ago

    SUITE ….

    Bien, en fait j’ai trouvé pour passer avec des extentions en Cap.

    il faut aussi modifier le fichier exmail2.class.php à la ligne 453 et transformer ([a-z0-9]{1,4}) en ([A-Za-z0-9]{1,4})
    et maintenant tout marche.

    Merci pour ce beau exmail qui marche tout bien.

  • #12 écrit par Steuf
    about 2 months ago

    Bonjour, désolé pour la réponse tardive mais effectivement il y a un petit bug à ce niveau. Au niveau de la regex j’aurais plutôt fait ‘`(.*)\.([a-z0-9]{1,4})`i’ (Le i permet de dire que cela est in-sensitif à la casse).

    Merci pour le signalement je vais essayer à l’occasion de refaire un check complet de ce petit script ça fait maintenant quelques années que je n’y ait pas touché quasiment :)