Formulaire et envoi mail par serveur

vincmori Messages postés 5 Date d'inscription dimanche 12 juillet 2009 Statut Membre Dernière intervention 27 juillet 2009 - 25 juil. 2009 à 16:17
vincmori Messages postés 5 Date d'inscription dimanche 12 juillet 2009 Statut Membre Dernière intervention 27 juillet 2009 - 27 juil. 2009 à 22:56
Bonjour à tous,
J'ai sur une page web de mon site un formulaire tout simple que voici,

form method="post" action="reservation.php" enctype="application/x-www-form-urlencoded" name="mail" id="mail" >

<label>Votre Nom

</label>




<label>Date de la réservation (JJ/MM/AA)

</label>




<label>Heure souhaitée (HH/mm)

</label>




<label>Nombre de couverts

</label>




<label>Votre e-mail

</label>




Voulez-vous recevoir nos promotions par e-mail?
<label>

oui</label>
<label>
non</label>




<label>

</label>



<label>

</label>

</form>

Renvoi vers une page avec le code PHP que voici;


<?php

$nom=$_POST['nom'];

$date=$_POST['date'];

$heure=$_POST['heure'];

$nombre=$_POST['nombre'];

$corp=$_POST['corp'];

$msg = "Nom de l'expéditeur :\t$nom\n";

$msg .="Date de la réservation :\t$date\n";

$msg .="Heure de la réservation :\t$heure\n";

$msg .="Nombre de personnes :\t$nombre\n";

$msg .="Mail de l'expéditeur :\t$corp\n\n";

$oui = $_POST['oui'];
$non = $_POST['non'];

$xx=$_POST['xx'];

if($xx=="oui")
{
$msg .="recevoir les promos :\t$xx\n";
}
else

{ $msg .="recevoir les promos :\t$xx\n";

}



$recipient = "info@monsite.be";

$subjet = "Mail du site web";

$mailheaders = "From: Réservation d'une table <>\r\n";

$mailheaders .= "Reply-To: $corp\r\n";


mail($recipient, $subjet, $msg, $mailheaders);
echo " Me/Mr $nom
";
echo "";
echo "Le PT vous remercie de la confiance que vous lui témoignez.

Une confirmation vous parviendra très prochainement.

";
?>

Je travaille en parallèle sur deux sites pour faire mes tests. Le site d'un client et le mien. Les codes sont exactement les mêmes sur les deux sites et le serveur est le même ( avec Php mysql, etc.).
MAIS: quand je teste le formulaire sur le site A, je reçois correctement le message que je veux. Quand je teste le même formulaire sur le site B, je ne reçois aucun mail.
Je deviens complètement sot. Ça fait des jours que çà dure où je reçois, puis rien, puis je reçois, puis rien, sans que je ne touche parfois à rien du tout.
Est-ce donc un problème de code ou un problème des serveurs?
Et si quelqu'un a quelques choses de propre, je suis preneur.
Un tout grand merci pour votre aide. Il va de soi que j'ai déjà fait le tour du web.

V.

2 réponses

nautilus99 Messages postés 661 Date d'inscription vendredi 26 septembre 2008 Statut Membre Dernière intervention 18 septembre 2009 1
27 juil. 2009 à 13:34
Bonjour,

quand je teste le formulaire sur le site A, je reçois correctement le message que je veux. Quand je teste le même formulaire sur le site B, je ne reçois aucun mail.

As-tu vérifié si la fonction mail est bien disponible sur les deux serveurs ?

je reçois, puis rien, puis je reçois, puis rien, sans que je ne touche parfois à rien du tout

Si le problème est aléatoire, il convient de vérifier complètement les paramétrages du serveur en question.
Les possibilités sont assez vastes, allant d'un service mail saturé, à un /tmp plein, voire un dépassement de quotas si un système de quotas s'applique.
0
vincmori Messages postés 5 Date d'inscription dimanche 12 juillet 2009 Statut Membre Dernière intervention 27 juillet 2009
27 juil. 2009 à 22:56
Bonjour

merci pour ta réaction Nautilus99.
J'ai discuté avec quelqu'un qui maîtrise un peu le langage PHP.
Voici ses remarques.
Pour le code du formulaire, il a l'air correcte. Mais si je veux, il conseille pour ce genre de mail d'utiliser un envoi par HTML. Cela suffirait.
Il semblerait qu'il y ait probablement au niveau du serveur des soucis comme tu soulevais Nautilus ( service mail saturé, à un /tmp plein, voire un dépassement de quotas si un système de quotas s'applique, sic.).
La fonction mail est bien disponible sur le serveur.
Comme j'aimerais le garder, voici donc ce que j'ai fait:
1° rajouter au début de mon code php ceci ( voir site PHP.net)
ini_set("SMTP","smtp.example.com" );
ini_set('sendmail_from', 'user@example.com');
en changeant les "@example" par des adresses appartenant au même nom de domaine, très important. (C'est de là aussi que viendraient les soucis)
2° mettre comme adresse e-mail dans "$recipient", une adresse qui elle aussi appartient au même nom de domaine que le site d'où partent les mails.
3° Et, évidemment dans le" $mailheaders = "From: pour être sûr aussi, l'adresse de l'expéditeur, qui lui aussi bien sûr appartient au même nom de domaine.


Voilà, je viens de faire un premier test et çà m'a l'air de fonctionner. Je vérifie cela deux trois jours et si çà marche, je reviens mettre ce message fort pratique en "résolu".
J'espère que tout ceci aidera d'autres personnes.
Bon codes à tous et merci Nauti'

V.
0
Rejoignez-nous