Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Problème d'accent avec Perl MIME::LITE

2 réponses
Avatar
Mag
Bonjour,

Je suis en train de faire un petit script pour envoyer un email
au format HTML en perl.

Tout marche bien sauf au niveau des accents.

Voici mon code source:

====================================================================
#!/usr/bin/perl
use MIME::Lite;


$msg = MIME::Lite->new(
From =>'sender@mydomain.net',
To =>'dest@mysender.net',
Subject =>'Envoi de l\'email via Perl!',
Type =>'multipart/related',
);

$msg->attr("content-type.charset" => "iso-8859-1");


$msg->attach(Type => 'text/html',
Data => qq{

<body>
<BR>
<img src="cid:email_html_top.png">
<BR>

<div style="width: 660px; font-family: Verdana; font-size:
11px; padding: 20px 10px 20px 10px;">
<div style="margin-left: 30px; margin-right: 60px;">
<div style='font-family: Verdana; font-size: 12px; font-weight:
bold; color: #628ED3; padding: 10px 0px 15px 0px; margin: 10px 0px 5px
0px; border-bottom: 1px solid #628ED3;'>Vos codes d'accès au site
XXX</div><div style='font-family: Verdana; font-size: 10px; padding: 0px
0px 15px 0px; margin: 0px 0px 5px 0px; border-bottom: 1px solid
#628ED3;'>Vous trouverez ci-dessous vos codes d'accès au site xxx que
vous avez demandé à recevoir.</div>

</div>
</div>

<BR>
<img src="cid:email_html_bottom.png">
</body>

}


);

$msg->attach(Type => 'image/png',
Id => 'email_html_top.png',
Path => '/email_html_top.png',
);


$msg->attach(Type => 'image/png',
Id => 'email_html_bottom.png',
Path => '/email_html_bottom.png',
);


$msg->send();
====================================================================


Voici ce que donne la partie texte quand je reçoit l'email :


Vos codes d'accès au site XXX
Vous trouverez ci-dessous vos codes d'accès au site XXX que vous avez
demandé à recevoir.



Quelqu'un aurait une solution pour m'aider ?

Merci d'avance

Mag

2 réponses

Avatar
Manuel Pégourié-Gonnard
Mag scripsit :

Je suis en train de faire un petit script pour envoyer un email
au format HTML en perl.

Tout marche bien sauf au niveau des accents.

Voici mon code source:

=================================================================== > #!/usr/bin/perl
use MIME::Lite;



Il est encodé en quoi ? Si c'est en UTF-8, rajouter "use utf8;".

Quoiqu'il en soit, 'use Encode;' aussi.

Data => qq{



Data => encode('iso-8859-1', qq{
...
});

Vos codes d'accès au site XXX
Vous trouverez ci-dessous vos codes d'accès au site XXX que vous avez
demandé à recevoir.



Ce qui évoque très fortement de l'utf8 traité comme du latin1.

Quelqu'un aurait une solution pour m'aider ?



Pistes ci-dessus, mais je n'ai pas testé.

--
Manuel Pégourié-Gonnard Institut de mathématiques de Jussieu
http://weblog.elzevir.fr/ http://people.math.jussieu.fr/~mpg/
Avatar
Mag
Le 02/05/2010 11:17, Manuel Pégourié-Gonnard a écrit :

Quoiqu'il en soit, 'use Encode;' aussi.

Data => qq{



Data => encode('iso-8859-1', qq{
...
});





Genial, merci avec votre rajout, mon email est correct.