Je suis nouveau sur ce forum et vous remercie pour son existence.
J'ai récupéré et adapté le code ci-dessous pour envoyer systématiquement un mail dès que je reçois un paiement validé par paypal. Le soucis est que ça ne marche pas systématiquement. Parfois je reçois bien le mail et parfois rien du tout, même si l'instruction "mail" me retourne un statut "true". Ce qui est méga grave, c'est que si la réservation est payée (donc validée), le destinataire n'est pas prévenu ... Donc l'utilisateur aura payé, mais n'aura pas le service !!!!
Je ne sais si ça vient de mon code PHP ou si ça vient de free, car mon site est hébergé chez free
Sur ce coup là, je commence à m'arracher un peu les cheveux et à perdre vraiment confiance dans cette solution
/////////////////////////////////////////////////////////////////////////////
// Envoi un mail au client pour le prévenir de l'annulation de réservation //
/////////////////////////////////////////////////////////////////////////////
if (!preg_match("#^[a-z0-9._-]+@(hotmail|live|msn).[a-z]{2,4}$#", $mail)) // On filtre les serveurs qui rencontrent des bogues.
{
$passage_ligne = "\r\n";
}
else
{
$passage_ligne = "\n";
}
//=====Déclaration des messages au format texte et au format HTML.
$message_txt = "Bonjour ".$prenom." ".$nom.", nous vous confirmons votre réservation numéro ".$idresa." pour la période du ".$date_deb." au ".$date_fin.".";
$message_html = "<html><head></head><body>Bonjour ".$prenom." ".$nom.",<br>Nous vous confirmons votre réservation numéro ".$idresa." pour la période du ".$date_deb." au ".$date_fin.".</body></html>";
//==========
//=====Création de la boundary
$boundary = "-----=".md5(rand());
//==========
//=====Définition du sujet.
$sujet = "Confirmation de votre reservation ".$idresa." !";
//=========
//=====Création du header de l'e-mail.
$header = "From: \"Cyril\"<[email protected]>".$passage_ligne;
$header.= "Reply-to: \"Cyril\" <[email protected]>".$passage_ligne;
$header.= "Cc: [email protected]"."\n";
$header.= "MIME-Version: 1.0".$passage_ligne;
$header.= "Content-Type: multipart/alternative;".$passage_ligne." boundary=\"$boundary\"".$passage_ligne;
//==========
//=====Création du message.
$message = $passage_ligne."--".$boundary.$passage_ligne;
//=====Ajout du message au format texte.
$message.= "Content-Type: text/plain; charset=\"ISO-8859-1\"".$passage_ligne;
$message.= "Content-Transfer-Encoding: 8bit".$passage_ligne;
$message.= $passage_ligne.$message_txt.$passage_ligne;
//==========
$message.= $passage_ligne."--".$boundary.$passage_ligne;
//=====Ajout du message au format HTML
$message.= "Content-Type: text/html; charset=\"ISO-8859-1\"".$passage_ligne;
$message.= "Content-Transfer-Encoding: 8bit".$passage_ligne;
$message.= $passage_ligne.$message_html.$passage_ligne;
//==========
$message.= $passage_ligne."--".$boundary."--".$passage_ligne;
$message.= $passage_ligne."--".$boundary."--".$passage_ligne;
//==========
//=====Envoi de l'e-mail.
if(mail($mail,$sujet,$message,$header))
{
echo 'Votre message a bien été envoyé au client';
}
else // Non envoyé
{
echo "Votre message n'a pas pu etre envoyé au client";
};