Lien dans un envoi d email en php

Résolu/Fermé
Luniz - 8 mars 2010 à 15:50
 Luniz - 8 mars 2010 à 16:40
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 jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 475
8 mars 2010 à 15:54
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
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 jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 475
8 mars 2010 à 16:25
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
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