8722 sujets

Développement web côté serveur, CMS

Bonjour,

ca fait quelques jours que je tourne en rond pour l'envoi de mail via formulaire (le truc basique quoi).
Mais cette fois ci j'ai rajouté de l'Ajax et Json pour l'envoi des données au server.

Problème: les mail de tests n'arrive plus depuis quelques jours.
Au début je pensais à un soucis de code, mais je suis de plus en plus sceptique et me demande si l'adresse ip de mon host n'est pas blacklistée, ceci dit
je n'ai aucun message d'erreur en retour, rien.
A vous de juger

Le code Jquery:



<script type="text/javascript">

$('#contact').on('submit', function(e)
{
e.preventDefault();
var error = false;
//simple validation at client's end
//loop through each field and we simply change border color to red for invalid fields
$("#contact input,#contact textarea"mdss[{;)}].each(function(){
$(this).css('border-color','');
if(!$.trim($(this).val()))
{ //if this field is empty
$(this).css('border-color','red'); //change border color to red
error = true; //set do not proceed flag
}
//check invalid email
var email_reg = /^([w-.]+@([w-]+.)+[w-]{2,4})?$/;
if($(this).attr("type"mdss[{;)}]=="email" && !email_reg.test($.trim($(this).val())))
{
$(this).css('border-color','red'); //change border color to red
error = true; //set do not proceed flag
}
});

if(!error) //everything looks good! proceed...
{
var $this = $(this);


$.ajax({
url: $this.attr('envoi_mail.php'), // Le nom du fichier indiqué dans le formulaire
type: $this.attr('POST'), // La méthode indiquée dans le formulaire (get ou post)
data: $this.serialize(), // Je sérialise les données (j'envoie toutes les valeurs présentes dans le formulaire)
dataType: 'json', // JSON
success: function(json)
{
if(json.message_sent == true)
{
$('#contact_results').show();
$('#contact_results').addClass('.success_message');
$('#contact_results').text('Mail envoyé !');
$("form input,form textarea"mdss[{;)}].val('');
} else {

if((json.message_sent == false) && (json.error == false) )
{
$('#contact_results').show();
$('#contact_results').addClass('.error_message');
$('#contact_results').text('Erreur lors de l'envoi n
de votre message: raison indéterminée');
$("form input,form textarea"mdss[{;)}].val('');
}
else
{
$('#contact_results').addClass('.error_message');
$('#contact_results').text('Error: les infos rentrées dans le formulaire semblent incorrectes');
}

}
}
});


}
};



</script>


Le formulaire:

Code :

<div id="form_contact">


<div id="contact_results">

</div>




<form action="envoi_mail.php" id="contact" method="POST">
<p>
<label for="prenom" class="prenom">Prénom</label>
<br /><input id="prenom" name="prenom" type="text" autofocus>

</p>
<p>

<label for="nom" class="nom">Nom</label>
<br /><input id="nom" name="nom" type="text" autofocus>

</p>
<p>
<label for="email">Email</label>
<br /><input id="email" name="email" type="email" autofocus>

</p>
<p>
<label for="sujet" class="sujet">Sujet</label>
<br /><input id="sujet" name="sujet" type="text" autofocus>

</p>

<p>
<label for="message">Message</label>
<br /><textarea id="message" name="message" rows="10" cols="80" autofocus></textarea>

</p>
<p>
<input type="submit" class='bouton_noir' value="Envoyer" />
</p>
</form>

</div><!-- end of #form_contact -->



le code PHP:



<?php

if(isset($_POST["user_prenom"]) && isset($_POST["user_nom"])
&& isset($_POST["user_email"]) && isset($_POST["user_subject"])
&& isset($_POST["user_message"]))
{
// array to pass back data
$user_datas =[];
$return_infos = [];
$to_email = "mon adresse@yahoo.fr"; //Recipient email, Replace with own email here
$input_error = false;
$message_sent = false;


$user_datas = [
"prenom" => $_POST["user_prenom"],
"nom" => $_POST["user_nom"],
"email" => $_POST["user_email"],
"sujet" => $_POST["user_subject"],
"message" => $_POST["user_message"],
];



//var_dump($user_datas);

/*$user_prenom = filter_input(INPUT_POST, $_POST["user_prenom"], FILTER_SANITIZE_STRING);
$user_nom = filter_input(INPUT_POST, $_POST["user_nom"], FILTER_SANITIZE_STRING);
$user_email = filter_input(INPUT_POST, $_POST["user_email"], FILTER_SANITIZE_EMAIL);
$user_sujet = filter_input(INPUT_POST, $_POST["user_subject"], FILTER_SANITIZE_STRING);
$user_message = filter_input(INPUT_POST, $_POST["user_message"], FILTER_SANITIZE_STRING); */




foreach($user_datas as $k => $v)
{
if(is_string($user_datas[$v]))
{
$input_error = false;
}
else
{
$input_error = true;
break;
}

}
//var_dump($user_datas);




// return a response ===========================================================

// if there are any errors in our errors array, return a success boolean of false
if (!($input_error))
{

$user_datas_ok=$user_datas;
$headers = 'From: '.$user_datas_ok["email"]. "rn" .
'Reply-To: '.$to_email. "rn" .
'X-Mailer: PHP/' .phpversion();

if( mail($to_email, "dkdkdkdkdkdkkdkd",
",c,d,c,c,c,", 'HAL <HAL@hotmail.com>')) // tentative d'envoi du message
{
$message_sent=true;

}
else{

$message_sent=false;

}


}



header('Content-type: application/json;charset=utf-8');
echo json_encode([
'message_sent' => $message_sent,
'error' => $input_error
]);


}














Voyez vous un probleme dans mon code, qui expliquerait que le message n'arrive pas ?

Merci d'avance

Tom
Bonjour,

As tu essayé de l'envoyer sur une autre adresse email d'un autre hébergeur ? Cela permettrait de tester l'ip bloqué.
Tu peux aussi vérifier le blacklistage de ton ip via des outils en ligne.