[Résolu] Envoi de mail automatique, problèmes d'accents

Bonsoir,

J’ai crée un petit script Perl qui envoie un message à plusieurs destinataires suivant des informations inscrites dans un fichier texte e-mail, nom, etc…)

Lorsque je reçois ce mail, les caractères accentués ne s’affichent pas correctement, ils sont rempalcés par des caractères bizarres.

Exemple :

Je sais que j’avais déjà eu des problèmes similaires avec mes sites Php hébergés en local.

Pensez-vous que ça puisse venir de ma config ? (j’utilise une Debian Sid en US)

Merci

Bon, en faisant quelques recherches, j’ai paramétré le module d’envoi de mails afin qu’il supporte les caractères accentués…mais ça ne suffit pas.

Étant donné que ma lenny est en US, j’ai tapé la commande suivante pour voir :

luis@rocky:~$ locale LANG=en_US.UTF-8 LC_CTYPE="en_US.UTF-8" LC_NUMERIC="en_US.UTF-8" LC_TIME="en_US.UTF-8" LC_COLLATE="en_US.UTF-8" LC_MONETARY="en_US.UTF-8" LC_MESSAGES="en_US.UTF-8" LC_PAPER="en_US.UTF-8" LC_NAME="en_US.UTF-8" LC_ADDRESS="en_US.UTF-8" LC_TELEPHONE="en_US.UTF-8" LC_MEASUREMENT="en_US.UTF-8" LC_IDENTIFICATION="en_US.UTF-8" LC_ALL= luis@rocky:~$

Il faudrait pas que je remplace UTF8 par autre chose pour franciser un peu le jeu de caractères ?
Savez-vous comment je pourrais faire ?

Merci

Bon,

j’ai fait un dpkg-reconfigure locales…et la seule chose que j’ai gagné c’est que je me suis retrouvé avec un O.S. en français. :smt003

Bon,
sinon, voici plus de détails sur mon problème, avec un exemple simple :

J’ai utilisé le module MIME::Lite pour l’envoi de mails (avec possibilité en HTML + pièces jointes)

[code]#!/usr/bin/perl -w

use MIME::Lite;

$msg = MIME::Lite->build(
From => ‘mike.meilleur@free.fr’,
To => ‘mike.meilleur@free.fr’,
Subject => “Re: Hier soir !”,
Type => ‘TEXT’,
Encoding => ‘quoted-printable’,
Data => “C’était très bien, je te raconterai…”
);
#$msg->attr(“content-type.charset” => “iso-8859-15”);
$msg->send(‘smtp’, ‘smtp.free.fr’);[/code]

Lorsque je reçois le mail en question, voici à quoi il ressemble :

C’est vraiment embêtant.
Est-ce que vous avez déjà utilisé ce module avec Perl ? Avez-vous rencontré ce problème ?

Merci

[quote=“MikeMeilleur”]

[code]#!/usr/bin/perl -w

use MIME::Lite;

$msg = MIME::Lite->build(
From => ‘mike.meilleur@free.fr’,
To => ‘mike.meilleur@free.fr’,
Subject => “Re: Hier soir !”,
Type => ‘TEXT’,
Encoding => ‘quoted-printable’,
Data => “C’était très bien, je te raconterai…”
);
#$msg->attr(“content-type.charset” => “iso-8859-15”);
$msg->send(‘smtp’, ‘smtp.free.fr’);[/code]
[/quote] changes iso-8859-15 par UTF-8 pour voir

Merci Rodmov,

J’ai fait mis utf-8 et ça fonctionne…sauf pour le sujet du message qui perd tous les caractères accentués.

Ça doit venir de mon script aussi, je vais regarder.

Merci

Bonsoir,

J’ai enfin résolu le problème en utilisant utf-8.
Donc, pour faire profiter ceux qui seraient intéressés, je poste ici mon script final.

A quoi sert ce script => A envoyer un mail HTML personnalisé à chaque personne (avec un logo en entête), contenant le login et le mot de passe de l’utilisateur.
Les infos sont extraites d’un fichier texte composé comme suit :

Nom prénom e-mail mot de passe

(mais on aurait très bien pu utiliser le “;” comme séparateur, il faudrait alors le préciser dans le script.

Le script :

[code]#!/usr/bin/perl -w

Create a new HTML message

use MIME::Lite package

use MIME::Lite;
use utf8;
$file = ‘liste.txt’; # Name the file
my $i = 1;
open(INFO, $file); # Open the file
while ($record = )
{
#split $record;
my @fields = split /\t/, $record;
$identifiant = $fields[1].".".$fields[0];
$identifiant = lc ($identifiant);
$msg = MIME::Lite->new(
From =>’“Mike Meilleur"mike.meilleur@free.fr’,
To =>”$fields[1] $fields[0]<".$fields[2].">",
#To =>$fields[2],
Subject =>‘Votre compte d’accès au site Internet du CE’,
Type =>‘multipart/related’
);
$msg->attach(
Type => ‘text/html’,
Data => qq{




Bonjour,


Voici votre compte d’accès au site Internet du Comité d’Entreprise :


Identifiant : $identifiant

Mot de passe : $fields[3]


Pour accéder au site : http://www.cetrucmuche.fr


Pensez à modifier votre mot de passe et remplir votre profil.


Bonne visite,

Le CE


},
);
$msg->attach(
Type => ‘image/jpg’,
Id => ‘logo_ce.jpg’,
Path => ‘logo_ce.jpg’,
);

use Net:SMTP to do the sending

$msg->add(“X-Mailer” => “MIME::Lite”);
$msg->send(‘smtp’,‘smtp.free.fr’, Debug=>0, Timeout => 30 );
print $i." - “.$fields[1].”\t".$fields[0]."\t\t".$fields[2]."\t\t==> Ok\n";
$i++;
}
close(INFO);[/code]

Bien sûr, pour utiliser ce script, vous devez d’abord installer le module MIME::Lite (et ses modules dépendants). En allant sur le site de la CPAN vous trouverez plus d’infos.

Merci à Rodmov pour son aide. :slightly_smiling: