Pb prog dans Bloc notes

Bonjour,

J'ai un fichier htm et en l'éditant avec le bloc notes, j'ai cela :
<html>
<head>
</head>

<a href="mailto:bb@aa.fr?cc=blabla.com&subject=coucou&body=
"Bonjour,

Voici le resultat de la question :

60%

Bravo

Cordialement,

AA
">LIEN</a>

Donc ceci me permet d'avoir une page html avec un lien. Si je clique dessus, cela m'ouvre un mail pré-rempli.
Le seul problème, c'est que je n'arrive pas à faire des retour à la ligne (dans le mail, tout est à la suite) et que le caractère % n'est pas pris en compte.

Quelqu'un pourrait-il m'aider SVP ?

D'avance merci !

3 réponses

  1. Slt,

    Une limitation du html à ce que j'ai trouvé !

    Toutefois certain courriel comme Outlook accepte le caractère %0D !

    ex.:

    <html>
    <a href="mailto:bb@aa.fr?cc=blabla.com&subject=coucou&body=
    Bonjour,%0D%0DVoici le resultat de la question :%0D%0D 60%25
     %0D%0DBravo%0D%0DCordialement,%0D%0DAA">Lien</a>
    </html>
    


    Lupin
    1. Modérateur
      Salut,

      Pour comprendre mieux.

      Des nombreux caractères sont encodés pour apparaître dans URL. Et ça marche aussi dans ton cas, de toute façon tu utilises un lien.

      Les caractères sont encodés par un signe % suivi de la valeur hexadécimale sur 2 chiffres.

      Quels caractères sont encodés?

      - les caractères compris entre 0x00 et 0x1F
      - entre 0x80 et 0x7F
      - ; / ? : @ & = + $ , < >
      etc..

      La liste des caractères autorisés est plus courte :

      a-z A-Z 0-9 - _ . ! ~ * ' ( )

      Voici un script en perl qui encode ton mail pré-rempli. Tu n'as qu'à modifier le contenu de la variable $text2encoder pour un autre message.
      #! /usr/bin/perl -w
      
      use strict;
      
      sub encoder_char {
       my $text=shift;
       $text=~ s/([^a-z0-9_.!~*'()-])/sprintf "%%%02X", ord($1)/gmei;
       return $text;
      }
      
      my $text2encoder='Bonjour,
      
      Voici le resultat de la question :
      
      60%
      
      Bravo
      
      Cordialement,
      
      AA';
      
      my $res=encoder_char($text2encoder);
      
      print "$res\n";
      

      Et le résultat
      [lamitest@localhost my_perl_script]$ perl mail.pl
      Bonjour%2C%0A%0AVoici%20le%20resultat%20de%20la%20question%20%3A%0A%0A60%25%0A%0ABravo%0A%0ACordialement%2C%0A%0AAA
      [lamitest@localhost my_perl_script]$
      

      Donc une autre version (ce que t'as donné Lupin fonctionne)
      <html>
      <a href="mailto:bb@aa.fr?cc=blabla.com&subject=coucou&body=
      Bonjour%2C%0A%0AVoici%20le%20resultat%20de%20la%20question%20%3A%0A%0A60%25%0A%0ABravo%0A%0ACordialement%2C%0A%0AAA">Lien</a>
      </html>


      lami20j
      1. Modérateur
        Voilà un autre exemple, j'ai modifié ton message (j'ai mis le texte dans $text2encoder (il faut mettre le texte entre apostrophes)
        Bonjour,
        
        Voici le resultat de la question :
        
        Et des nouveaux caractères:
        é è à ç ù
        
        - ; / ? : @ & = + $ , < >
        
        
        60%
        
        Bravo
        
        Cordialement
        
        AA'

        Le résultat de l'encodage
        Bonjour%2C%0A%0AVoici%20le%20resultat%20de%20la%20question%20%3A%0A%0AEt%20des%20nouveaux%20caract%C3%A8res%3A%0A%C3%A9%20%C3%A8%20%C3%A0%20%C3%A7%20%C3%B9%20%0A%0A-%20%3B%20%2F%20%3F%20%3A%20%40%20%26%20%3D%20%2B%20%24%20%2C%20%3C%20%3E%20%0A%0A%0A60%25%0A%0ABravo%0A%0ACordialement%2C%0A%0AAA

        Le lien
        <html>
        <a href="mailto:bb@aa.fr?cc=blabla.com&subject=coucou&body=
        Bonjour%2C%0A%0AVoici%20le%20resultat%20de%20la%20question%20%3A%0A%0AEt%20des%20nouveaux%20caract%C3%A8res%3A%0A%C3%A9%20%C3%A8%20%C3%A0%20%C3%A7%20%C3%B9%20%0A%0A-%20%3B%20%2F%20%3F%20%3A%20%40%20%26%20%3D%20%2B%20%24%20%2C%20%3C%20%3E%20%0A%0A%0A60%25%0A%0ABravo%0A%0ACordialement%2C%0A%0AAA">Lien</a>
        </html>