Fonction mail() PHP [Résolu/Fermé]

Signaler
Messages postés
64
Date d'inscription
mardi 11 août 2015
Statut
Membre
Dernière intervention
25 novembre 2019
-
 rxdt -
Bonjour,

J'ai un formulaire de contact qui sert à poster un message d'un utilisateur a l'administrateur du site:

Formulaire:
<form action="" method="POST" id="form-ctc">
   <input type="text" placeholder="Objet" name="objet-ctc" id="input-ctc"/>
   <textarea type="text" name="msg-ctc"placeholder="Votre message" required></textarea>
   <input type="text" placeholder="Votre nom" name="nom-ctc" id="input-ctc" required/>
   <input type="email" placeholder="Adresse email" name="mail-ctc" id="input-ctc" required/>
   <input type="submit" name="sub-ctc" id="sub-ctc" value="Envoyer"/>
</form>


Script du fonction mail():
$mail = $_POST["mail-ctc"];
       
$headers = "From:".$mail. "\r\n" .
$headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";
$headers .= "CC:".$mail. "\r\n";
$to = "*****@gmail.com";
$subject = $_POST["objet-ctc"];
$nom = $_POST["nom-ctc"];
$msg = $_POST["msg-ctc"];
$preMsg=str_replace("\n","<br/>",$msg);
$message =
"<html>
 <head>
  <title>HTML email</title>
 </head>
 <body>
  <p>".$preMsg."</p>
  <p>".$nom."</p>
 </body>
</html>
";

$mailTo=mail($to,$subject,$message,$headers);

Et Voici le probleme:
Si un utilisateur entre un adresse sonemail@gmail.com, tout va bien, mais en essayant avec un son email@yahoo.fr, on recoit rien dans n*********@gmail.com


Un autre aussi.

Envoie automatique d'un email de validation d'une inscription à l'utilisateur, la balise <a href="lien">à cliquer</a> ne s'applique pas sur gmail mais marche bien sur yahoo. Je fais de teste seulement avec gmail et yahoo!!

Voici le script:
$headers = "From:ndebazar@gmail.com". "\r\n" .
$headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";
$headers .= "CC: admin@********r.com". "\r\n";
$to = $mailUtilisateur;
$subject = 'Validation d\'inscription';
$message = "
<html>
 <head>
  <title>Email</title>
 </head>
 <body>
  <div style='color:#222;'>
   <h2 style='color:#F70;'>Validations d\'inscription</h2>
   <p style='color:#222;'>
    Bonjour,</p>
   <p style='color:#222;'>
    Ce courriel vous est envoyé afin de vérifier que l’adresse e-mail que vous avez fournie est réelle.<br/>
    Tout ce qu’il vous reste à faire est de
    
    <a style='color:#blue;text-decoration:underline;' href='http://www.********.com/users.php?r=act-validation&ia=".$validation." '>cliquer ici</a> pour terminer votre inscription.
      </p><br />
      
    <p style='color:#222;'> 
    Si le lien ne marche pas, veuillez copier/coller l'URL suivant sur la barre d'adresse de votre navigateur: </p>

    <span style='text-decoration:underline;font-style:italic;color:blue;'>
     [http://www.*********r.com/users.php?r=act-validation&ia=]".$validation."
     
    </span>
    
   <p style='color:#222;'> A bientôt</p>
  </div>
 </body>
</html>

";

J'en ai déjà concocté sur quelques jours mais aucun résultat. Je vous demande de m'aider s'il vous plait!

Lerod


EDIT : Suppression des informations personnelles + ajout des balises de code.


EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici :ICI

Merci d'y penser dans tes prochains messages.


1 réponse

Bonjour,

quasiment impossible que toutes les boîtes mail affichent HTML comme un navigateur. La raison est simple, en plus que le service mail n'est pas fait pour ça (et sont 2 services d'Internet différents) c'est pour la sécurité des utilisateurs et leur boîtes mails. Chacun va faire ses normes et blocages:

Mais il y a le type MIME correspondant qui permet d'aider un peu.
Sinon des trucs et astuces plus ou moins fiable et tester sur chaque BAL.

http://stackoverflow.com/questions/3820631/using-php-mail-setting-correct-mime-type