Mail qui ne s'envoie pas

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Mail qui ne s'envoie pas

Re: Mail qui ne s'envoie pas

par franckm » 11 nov. 2013, 15:40

J n'ai pas lu ton code precisémment mais parfois il faut regarder du côté des headers car certains FAI bloquent certains mails n'ayant pas des headers particuliers. C'est notamment le cas de ORANGE.

Fais une recherche sur GOOGLE là dessus.

Mail qui ne s'envoie pas

par claire92 » 11 nov. 2013, 14:24

Bonjour,

J'ai écris ce code pour envoyer un mail après remplissage du formulaire, à différents destinataires sélectionner dans une liste multiple. Je n'ai aucun message d'erreur mais je ne reçois pas le mail.. Une idée?
Voici mon code PHP:
<?php 
//Ouverture de la session
session_start();

//Définition de toutes les variables
$copie = 'non'; // 'oui' ou 'non'

$message_envoye = "<div class='msg'> Votre message nous est bien parvenu . Nous y répondrons dans les plus brefs délais. Pour retourner au site cliquez <a href='monsite/contact'>ici</a></div>";
$message_non_envoye = "<div class='msg'>L'envoi du mail a échoué, veuillez réessayer s'il vous plait ou utiliser une méthode traditionnelle.</div>";

$nom = (isset($_POST['nom']));
$prenom = (isset($_POST['prenom']));
$email = (isset($_POST['email']));
$destinataire = array(
		'1'  => '[email protected]',
		'2'  => '[email protected]',
		'3' => '[email protected]',
);
$objet = (isset($_POST['objet']));
$message = (isset($_POST['message']));

$headers ='From:' .$nom."\n";
$headers .='Content-Type: text/plain; charset="iso-8859-1"'."\n";
$headers .='Content-Transfer-Encoding: 8bit';

//On vérifie la syntaxe de l'email
function IsEmail($email) {
	return (filter_var($email, FILTER_VALIDATE_EMAIL));
}

//On définit l'expéditeur
ini_set('sendmail_from', $email);
		
//On définit les destinataires sélectionnés et on envoie le formulaire
	if (is_array($destinataire)) {
		foreach ($destinataire as $cible) {
			if (array_key_exists($cible, $destinataire)) {
				mail($destinataire[$cible], $subject, $message, $headers);
			}
		}
	}

//On arrête l'envoi du formulaire
exit;
//On définit la page de retour après envoi du formulaire
	header("Location:index.html");

?>
Et mon code HTML
 <form method="post" action="contact.php"> 
	<fieldset><legend>Vos coordonnées</legend>
		<p><label for="nom">Nom:</label> </p> 
		<p><input type="text" id="nom" name="nom" placeholder="Nom" required tabindex="1"/></p>
						            
		<p><label for="nom">Prénom:</label> </p> 
		<p><input type="text" id="prenom" name="prenom" placeholder="Prénom" required tabindex="2"/></p>
						            
	        <p><label for="email">Votre email:</label></p> 
		<p><input type="text" id="email" name="email" placeholder="[email protected]" required tabindex="3"/> </p>
						            
		<p><label for="destinataire">Destinataire :</label></p>
		<p> <select multiple="multiple" name="destinataire" id="destinataire" size="6" required>
				<option value="1">Claire</option>
				<option value="2">Mathieu</option>
				<option value="3">Claire2</option>
			</select></p>
		</fieldset>
	            
		<fieldset><legend>Votre message :</legend>
				<p><label for="objet">Objet:</label></p> 
				<p><input type="text" id="objet" name="objet" placeholder="Objet de votre mail" required tabindex="5" /> </p>
						            
				<p><label for="message">Votre message:</label></p> 
				<p><textarea name="message" id="message" tabindex="6" placeholder="Votre mail" required> </textarea> </p>
						            
				<p><input type="submit" id="envoi" name="envoi" tabindex="7" value="Envoyer"/></p>
		</fieldset>
</form>