Lien dans un envoi d email en php

Résolu
Luniz -  
 Luniz -
Bonjour,

Je fais une newsletter pour mon site.

Quand les gens s inscrivent a la newsletter, ils reçoivent un mail automatique avec un lien pour confirmer leur inscription.

Mais j arrive pas a mettre de lien dans le mail !

ça ne reconnait pas le html ! les balises du lien de confirmation <a></a> sont visibles tels quel dans le mail et le lien n est pas cliquable, ni en bleu.

voici le code de mon email automatique:

$msg .= "Bonjour.\r\n
Votre adresse $email a bien été enregistrée.\r\n
Vous recevrez la Newsletter de monsite. Veuillez cliquer <a>ici</a> pour confirmer votre inscription.\r\n";

$destinataire = "$email";
$sujet = "Confirmation d'inscription";
$mailheaders = "From:monsite<monsite@hotmail.com> \n";
mail($destinataire, $sujet, $msg, $mailheaders);


Pouvez-vous me dire pourquoi ça fait ça svp?

Merci

3 réponses

arthezius Messages postés 3538 Date d'inscription   Statut Membre Dernière intervention   475
 
Bonjour,
Cela viens du header de ton mail. Tu ne défini pas le type de contenu.

Voici un exemple:

<?php
     $headers ='From: "nom"<adresse@fai.fr>'."\n";
     $headers .='Reply-To: adresse_de_reponse@fai.fr'."\n";
     $headers .='Content-Type: text/html; charset="iso-8859-1"'."\n";
     $headers .='Content-Transfer-Encoding: 8bit';

     $message ='<html><head><title>Un titre ici</title></head><body>Un message de test</body></html>';

     if(mail('adresse_du_destinataire@fai.fr', 'Sujet', $message, $headers))
     {
          echo 'Le message a été envoyé';
     }
     else
     {
          echo 'Le message n\'a pu être envoyé';
     }
?> 


Voir sur cette page: https://www.vulgarisation-informatique.com/mail.php
0
Luniz
 
Merci c'est super le lien de confirmation fonctionne !

Mais du coup maintenant j ai 2 petits probleme dans le mail

1) les retour chariot ne sont plus pris en compte et
2) les caracteres iso-latin sont mal orthographiés

ça me met dans le mail automatique (quand j'ouvre le message avec mon client hotmail):

Bonjour. Votre adresse a bien été enregistrée. Vous recevrez la Newsletter de monsite. Veuillez cliquer ici pour confirmer votre inscription.

comment je peux faire pour régler ça svp?

Merci beaucoup !
0
arthezius Messages postés 3538 Date d'inscription   Statut Membre Dernière intervention   475
 
Pour les retour chariot, il faut utiliser la fonction nl2br().

Pour l'encodage, vérifie que celui utilisé dans ton fichier est le même que celui déclaré dans le mail.
Au besoin tu peux utiliser les fonctions utf8_ encode() ou utf8_ decode() suivant ton cas.
0
Luniz
 
ah ok merci

j ai mis

$headers .='Content-Type: text/html; charset="UTF-8"'."\n";

car mon fichier est en php et je dois le laisser en utf-8

Merci beaucoup tout fonctionne !
0