Pb prog dans Bloc notes

Steph -  
lami20j Messages postés 21644 Statut Modérateur, Contributeur sécurité -
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 !
A voir également:

3 réponses

Lupin
 
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
0
lami20j Messages postés 21644 Statut Modérateur, Contributeur sécurité 3 570
 
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
0
lami20j Messages postés 21644 Statut Modérateur, Contributeur sécurité 3 570
 
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>
0