Problème formulaire mail
Ifryona
-
jjsteing Messages postés 1613 Date d'inscription Statut Contributeur Dernière intervention -
jjsteing Messages postés 1613 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Le formulaire de contact du site dont je m'occupe s'est mis à bugué du jour au lendemain, sans avoir subit aucune modification.
Il fait appel à une classe phpmailer, je ne sais pas si le problème peut venir de là...
Il fonctionnait très bien et puis depuis peu il bug ; lorsque l'on envoie un mail il ne part pas, et si on essaie de le renvoyer ànouveau ça semble fonctionner... C'est donc très aléatoire.
Auriez-vous une idée d'où cela peut venir ?
Merci par avance,
Ifryona.
Le formulaire de contact du site dont je m'occupe s'est mis à bugué du jour au lendemain, sans avoir subit aucune modification.
Il fait appel à une classe phpmailer, je ne sais pas si le problème peut venir de là...
Il fonctionnait très bien et puis depuis peu il bug ; lorsque l'on envoie un mail il ne part pas, et si on essaie de le renvoyer ànouveau ça semble fonctionner... C'est donc très aléatoire.
Auriez-vous une idée d'où cela peut venir ?
Merci par avance,
Ifryona.
Configuration: Windows XP Firefox 3.0.14
8 réponses
-
bonjour,
Donc la fonction mail (phpmailer) en elle meme fonctionne... c'est juste l envoie qui est aléatoire...
Cela peut venir de ton hebergeur....
certains limites le nombre de mails que tu peux envoyer par heure/jour/semaine/mois...
contacte les pour savoir s il n y a pas ce genre de limitation ;) -
Merci pour ta réponse !
Je les ai déjà contacter et ils m'ont dit que ça pouvait venir de ma classe php.mailer...
Le truc c'est qu'il n'y a eu aucun changement de mon côté, ni du côté de l'hébergeur et qu'avant tout fonctionnait très bien !
Encore plus étrange le premier envoie ne fonctionne pas mais si je ré-envoie ça fonctionne... Serait-ce le cas si ça viendrait d'une limites de mail ? Surtout qu'il n'y a pas non plus des envois énormes de mail via ce formulaire.
Ifryona. -
re :)
quand tu écris :
Encore plus étrange le premier envoie ne fonctionne pas mais si je ré-envoie ça fonctionne...
tu fais F5 pour le ré-envoie ou tu reclique sur envoyer ?? -
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
et bien.. je vois pas trop.. tu peux envoyer le code avant et apres l appel de ton phpmailer ?
-
Oui biensûr ! Voilà le code du fichier où se fait l'appel à phpmailer ! Le message d'erreur que vous trouverez dans le code plus bas est celui qui s'affiche lorsque j'essaie d'envoyer un mail.
<?php if (isset($_POST['nom'])){ extract($_POST); $message=StripSlashes($message); //CONTENU $texte = "<table width='450' align='center' style='border:1px solid #CCD215;font-family: Verdana;font-size: 10px;color:#6A3800;background-color:#FFFFFF;'>"; $texte .="<tr><th style='border:1px solid #6A3800;background-color:#CCD215;'><span style='font-family: Verdana;font-size: 11px;color:#6A3800;'>Formulaire</span></th></tr>"; $texte .="<tr><td> <strong>Nom</strong> : ".$nom."</td></tr>"; $texte .="<tr><td> <strong>Prénom</strong> : ".$prenom."</td></tr>"; $texte .="<tr><td> <strong>E-mail</strong> : ".$email."</td></tr>"; $texte .="<tr><td> <strong>Téléphone</strong> : ".$telephone."</td></tr>"; $texte .="<tr><td> <strong>Entreprise</strong> : ".$entreprise."</td></tr>"; $texte .="<tr><td> <strong>Site</strong> : ".$site."</td></tr>"; $texte .="<tr><td> <strong>Message</strong> : ".$message."</td></tr>"; $texte .="</table><br><br>"; //echo $texte; //exit(); include_once("../inclusion/class.phpmailer.php"); $mailer = new phpmailer(); $mailer->IsSMTP(); $mailer->Host = "localhost"; //en ligne $mailer->Username = "bzzzz"; // SMTP username $mailer->Password = "bzzzz"; // SMTP password $mailer->Subject = "Envoi d'un formulaire depuis le site"; $mailer->From = $email; $mailer->FromName = $prenom." ".$nom; $mailer->AddAddress("contact@bzzzz.fr"); //mettre ici l'adresse de destination $mailer->IsHTML(true); $mailer->Body = $texte; //@$mailer->Send(); if(!$mailer->Send()){ echo "<div align='center' style='margin-top:200px;color=#ff0000;'>"; echo "Erreur lors de l'envoi du mail ! <br><br> Nous vous prions de bien vouloir nous excuser et vous invitons à recommencer l'opération en <a href='bzzzz-nous-contacter.php'>cliquant ici</a>"; echo "</div>"; } else{ //si le mail est bien parti header("Location: bzzzz-mail-envoye.php"); } } else { //si la variable POST n'existe pas, on renvoie vers la page d'accueil header("Location: ../index.php"); } ?> -
-
bonjour,
desolé de ne pas avoir repondu plus tot...
tout d'abord, assure toi qu il passe bien le
if (isset($_POST['nom'])){...}
En principe, si ton wamp ou easyphp est bien configuré, tu ne devrais pas avoir besoin de ces 3 lignes :
$mailer->Host = "localhost"; //en ligne
$mailer->Username = "bzzzz"; // SMTP username
$mailer->Password = "bzzzz"; // SMTP password
De plus, apparemment, tu fais te"s test en local, hors, pour l envoie de mail, il vaut mieux tester directement en ligne car certaines fonctions ne sont pas forcement actives...
et vérifie que le chemin existe:
header("Location: bzzzz-mail-envoye.php");
je sais pas où est situé ce fichier dans ton site, mais si il est à la racine =>
header("Location: ../bzzzz-mail-envoye.php");
enfin, fait des essais pas à pas, c'est a dire en utilisant le moins de variables possibles:
essai d abord ca :
if (isset($_POST['nom'])){
extract($_POST);
$message="mon message";
//CONTENU
$texte="Mon Texte";
include_once("../inclusion/class.phpmailer.php");
$mailer = new phpmailer();
$mailer->IsSMTP();
$mailer->Host = "localhost"; //en ligne
$mailer->Username = "bzzzz"; // SMTP username
$mailer->Password = "bzzzz"; // SMTP password
$mailer->Subject = "Envoi d'un formulaire depuis le site";
$mailer->From = "monemail@me.com";
$mailer->FromName = "prenom nom";
$mailer->AddAddress("contact@bzzzz.fr"); //mettre ici l'adresse de destination
$mailer->IsHTML(true);
$mailer->Body = $texte;
//@$mailer->Send();
if(!$mailer->Send()){
echo "Erreur lors de l'envoi du mail !";
}
else{ //si le mail est bien parti
echo "Mail envoyé !";
}
}
else { //si la variable POST n'existe pas, on renvoie vers la page d'accueil
echo "Pas de Post";
}
?>
Donc si ca ca marche pas c'est que le probleme vient soit du post, dans ce cas, verifie que la page qui post est bien ecrite, à la rigueur, envoie nous une copie.. soit que
$mailer->Host = "localhost"; //en ligne
$mailer->Username = "bzzzz"; // SMTP username
$mailer->Password = "bzzzz"; // SMTP password
genere une erreur)
et si ca marche des le premier envoie, alors remet petit à petit le code original, et tu verra où ca plante ;)