Bonjour,
Je vous contact car je suis en train de faire un site en local (avec MAMP) et je ne comprends pas pourquoi les mails ne sont jamais reçus dans ma boite mail :'(
Voici mon code PHP
Et voici mon code html :
Je suis en train de penser que c'est mon MAMP qui divague mais bon, j'ai l'impression que le problème se trouve entre le clavier et la chaise...
Merci pour votre aide
Modifié par Fifouak (31 Oct 2019 - 02:59)
Je vous contact car je suis en train de faire un site en local (avec MAMP) et je ne comprends pas pourquoi les mails ne sont jamais reçus dans ma boite mail :'(
Voici mon code PHP
<?php
$destinataire = 'monemail@quejenevaispasecrire.ici';
$copie = 'non';
$message_envoye = "Votre message nous est bien parvenu ! <a href=\"./#contact\">Retour au site</a>";
$message_non_envoye = "L'envoi du mail a échoué, veuillez réessayer SVP.";
$message_erreur_formulaire = "Vous devez d'abord <a href=\"./#contact\">envoyer le formulaire</a>.";
$message_formulaire_invalide = "Vérifiez que tous les champs soient bien remplis et que l'email soit sans erreur.";
if (!isset($_POST['envoi']))
{
// formulaire non envoyé
echo '<p>'.$message_erreur_formulaire.'</p>'."\n";
}
else
{
/*
* cette fonction sert à nettoyer et enregistrer un texte
*/
function Rec($text)
{
$text = htmlspecialchars(trim($text), ENT_QUOTES);
if (1 === get_magic_quotes_gpc())
{
$text = stripslashes($text);
}
$text = nl2br($text);
return $text;
};
/*
* Cette fonction sert à vérifier la syntaxe d'un email
*/
function IsEmail($email)
{
$value = preg_match('/^(?:[\w\!\#\$\%\&\'\*\+\-\/\=\?\^\`\{\|\}\~]+\.)*[\w\!\#\$\%\&\'\*\+\-\/\=\?\^\`\{\|\}\~]+@(? [decu]? [decu]?:[a-zA-Z0-9_](?:[a-zA-Z0-9_\-](?!\.)){0,61}[a-zA-Z0-9_-]?\.)+[a-zA-Z0-9_](?:[a-zA-Z0-9_\-](?!$)){0,61}[a-zA-Z0-9_]?)|(?:\[(? [decu]?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\.){3}(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\]))$/', $email);
return (($value === 0) || ($value === false)) ? false : true;
}
// formulaire envoyé, on récupère tous les champs.
$nom = (isset($_POST['nom'])) ? Rec($_POST['nom']) : '';
$email = (isset($_POST['email'])) ? Rec($_POST['email']) : '';
$objet = (isset($_POST['objet'])) ? Rec($_POST['objet']) : '';
$message = (isset($_POST['message'])) ? Rec($_POST['message']) : '';
// On va vérifier les variables et l'email ...
$email = (IsEmail($email)) ? $email : ''; // soit l'email est vide si erroné, soit il vaut l'email entré
if (($nom != '') && ($email != '') && ($objet != '') && ($message != ''))
{
// les 4 variables sont remplies, on génère puis envoie le mail
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'From:'.$nom.' <'.$email.'>' . "\r\n" .
'Reply-To:'.$email. "\r\n" .
'Content-Type: text/plain; charset="utf-8"; DelSp="Yes"; format=flowed '."\r\n" .
'Content-Disposition: inline'. "\r\n" .
'Content-Transfer-Encoding: 7bit'." \r\n" .
'X-Mailer:PHP/'.phpversion();
// envoyer une copie au visiteur ?
if ($copie == 'oui')
{
$cible = $destinataire.';'.$email;
}
else
{
$cible = $destinataire;
};
// Remplacement de certains caractères spéciaux
$caracteres_speciaux = array(''', '’', '"', '<br>', '<br />', '<', '>', '&', '…', '’', '‘');
$caracteres_remplacement = array("'", "'", '"', '', '', '<', '>', '&', '...', '>>', '<<' );
$objet = html_entity_decode($objet);
$objet = str_replace($caracteres_speciaux, $caracteres_remplacement, $objet);
$message = html_entity_decode($message);
$message = str_replace($caracteres_speciaux, $caracteres_remplacement, $message);
// Envoi du mail
$num_emails = 0;
$tmp = explode(';', $cible);
foreach($tmp as $email_destinataire)
{
if (mail($email_destinataire, $objet, $message, $headers))
$num_emails++;
}
if ((($copie == 'oui') && ($num_emails == 2)) || (($copie == 'non') && ($num_emails == 1)))
{
echo '<p>'.$message_envoye.'</p>';
}
else
{
echo '<p>'.$message_non_envoye.'</p>';
};
}
else
{
// une des 3 variables (ou plus) est vide ...
echo '<p>'.$message_formulaire_invalide.' <a href="./#contact">Retour au formulaire</a></p>'."\n";
};
}; // fin du if (!isset($_POST['envoi']))
?>
Et voici mon code html :
<form action="contact.php" method="post" class="contact-form">
<div class="row form-group">
<div class="col-md-12 mb-3 mb-md-0">
<label class="font-weight-bold" for="nom">Prénom</label>
<input type="text" id="nom" name="nom" class="form-control" placeholder="Prénom">
</div>
</div>
<div class="row form-group">
<div class="col-md-12">
<label class="font-weight-bold" for="email">Email</label>
<input type="email" id="email" name="email" class="form-control" placeholder="Adresse e-mail">
</div>
</div>
<div class="row form-group">
<div class="col-md-12">
<label class="font-weight-bold" for="objet">Sujet</label>
<input type="text" id="objet" name="objet" class="form-control" placeholder="Sujet">
</div>
</div>
<div class="row form-group">
<div class="col-md-12">
<label class="font-weight-bold" for="message">Message</label>
<textarea name="message" id="message" cols="30" rows="5" class="form-control"
placeholder="Votre message ici"></textarea>
</div>
</div>
<div class="row form-group">
<div class="col-md-11">
<input type="submit" value="Envoyer" name="envoi" class="btn btn-primary py-3 px-4">
</div>
</div>
</form>
Je suis en train de penser que c'est mon MAMP qui divague mais bon, j'ai l'impression que le problème se trouve entre le clavier et la chaise...
Merci pour votre aide
Modifié par Fifouak (31 Oct 2019 - 02:59)