lien cliquable de fichier php dans mail html

Nouveau WRInaute
Bonjour, je ne sais pas si mon titre est explicite mais je vous explique.

Lorsqu'un membre de mon site reçoit un message ou une demande quelconque, une notification lui est envoyé. A la base le mail est envoyé en texte a partir d'un fichier php qui contient le lien pour accéder au message. Hors comme l'esthétique primaire n'est pas a mon gout, j'envoie le mail en html en incluant le texte et le lien du fichier php dedans. Seulement le lien bien que visible n'est pas cliquable dans le mail. Je voudrais donc savoir comment faire en sorte que le lien du fichier php soit cliquable dans le mail html que le site envoie.

Voici le code de mon fichier php:

Code:
Bonjour {target},

{actor} vient de vous faire parvenir un nouveau message.

Vous pouvez prendre connaissance du message en cliquant sur le lien ci-dessous :

<?php echo $url; ?>


Bonne journée !

voici mon code pour afficher le texte du fichier php:

Code:
<TD height="226" align="center" valign="top"><p class="Oxo14" style="border: 3px solid #ffffff; padding: 20px; margin: 0 auto 0 auto; width: 610px;">[CONTENT]</p></TD>

Auriez-vous s'il vous plais une solution pour que le lien du fichier php soit affiché comme un lien cliquable dans mon mail ?

Merci par avance de votre aide. :)
 
WRInaute accro
ET le lien il a quelle tête ?

En général les mails sont envoyés en multipart (texte+html), pas en html seul.
 
WRInaute accro
C'est un problème de charset, je te file un code, c'est mieux avec un exemple, n'oublie pas de remplir les entetes, et tu n'es pas obligé de creer toute les adresses mail, une seule suffit, mais toute c'est mieux

prend ce code plus bas, et adapte le, dans la variable $texte_plain tu vas mettre le lien sans html -http://www.site.com/- et dans la variable $texte_html tu vas mettre le html <a href="http://www.site.com/">ancre</a>

++
KOogar


Code:
<?
$texte_plain  = "titre \n";
    $texte_plain .= "votre texte \n";
    $texte_plain .= "a ecrire ici \n";

    $texte_html  = "<strong>titre</strong><br />";
    $texte_html .= "votre texte <br />";
    $texte_html .= "a ecrire ici <br />";


    $mime_boundary = "----nomdusite----".md5(time());
    $entetes = "From: nomdusite <services@nomdusite.org>\n";
    $entetes .= "Mime-Version: 1.0\n";
    $entetes .= 
"Content-Type: multipart/alternative; boundary=\"$mime_boundary\"\n";
    $entetes .= "X-Sender: <www.nomdusite.org>\n";
    $entetes .= "X-Mailer: PHP/" . phpversion() . " \n" ;
    $entetes .= "X-Priority: 3 (normal) \n";
    $entetes .= "X-auth-smtp-user: services@nomdusite.org\n";
    $entetes .= "X-abuse-contact: abuse@nomdusite.org\n";
    $entetes .= "Importance: Normal\n";
    $entetes .= "Reply-to: services@nomdusite.org\n";


    // header texte plain
    $mess = "--$mime_boundary\n";
    $mess .= "Content-Type: text/plain; charset=ISO-8859-1\n";
    $mess .= "Content-Transfer-Encoding: 8bit\n\n";
    $mess .= $texte_plain;


    // header texte en html
 
    $mess .= "--$mime_boundary\n";
    $mess .= "Content-Type: text/html; charset=ISO-8859-1\n";
    $mess .= "Content-Transfer-Encoding: 8bit\n\n";
    $mess .= $texte_html;

    // envoi du mail HTML
    $date_mail = date("d-m-Y"); // la date (optionnelle)

    mail("nom@adresse_email.org","titre - $date_mail",$mess,$entetes);

    ?>
 
WRInaute passionné
@KOogar : Merci pour ce bout de code : ça m'a ouvert les yeux sur un pb que j'avais

Edit anti-flood :)

Merci aussi pour cette explication ci-après
 
WRInaute accro
@druart :D

J'ai oublier de mettre le trim sur le mode texte, car en mode texte il faut absolument ne pas mettre de retour chariot en début et fin de chaine dans le texte, sinon ca renvoie aussi le header HTML en même temps.

$mess .= trim($texte_plain)

mais vu que le trim c'est pas ce qu'on fait de mieux pour enlever les espaces, la meilleur solution est de ne pas mettre d'espace.

$texte_plain = 'votre O texte';

++
KOogar
 
Nouveau WRInaute
Merci beaucoup KOogar , j'ai eu un autre style de réponse sur un forum php/html plus simple je dirais.

tout simplement modifier mon code php:

Code:
Bonjour {target},

{actor} vient de vous faire parvenir un nouveau message.

Vous pouvez prendre connaissance du message en cliquant sur le lien ci-dessous :

<a href="<?php echo $url; ?>" title="Message de {actor}"><?php echo $url; ?></a>

Bonne journée !

et ca fonctionne super bien
 
Discussions similaires
Haut