J'essaie de modifier le programme ci-dessous pour m'assurer que chaque message est converti en utf-8 en utilisant Encode :: decode(), mais je ne sais pas comment et où le placer pour le faire fonctionner.Comment puis-je convertir des messages dans un fichier mbox en UTF-8?
#!/usr/bin/perl
use warnings;
use strict;
use Mail::Box::Manager;
open (MYFILE, '>>data.txt');
binmode(MYFILE, ':encoding(UTF-8)');
my $file = shift || $ENV{MAIL};
my $mgr = Mail::Box::Manager->new(
access => 'r',
);
my $folder = $mgr->open(folder => $file)
or die "$file: Unable to open: $!\n";
for my $msg (sort { $a->timestamp <=> $b->timestamp } $folder->messages)
{
my $to = join(', ', map { $_->format } $msg->to);
my $from = join(', ', map { $_->format } $msg->from);
my $date = localtime($msg->timestamp);
my $subject = $msg->subject;
my $body = $msg->decoded->string;
# Strip all quoted text
$body =~ s/^>.*$//msg;
print MYFILE <<"";
From: $from
To: $to
Date: $date
Subject: $subject
\n
$body
}
Je pense que ce serait beaucoup plus facile pour nous tous si vous cassiez cette "question" dans ses composants. – innaM
ok je vais faire, je suis inquiet de coller le code à chaque fois si. –
Il n'est pas nécessaire de coller du code lorsque la question est de savoir comment implémenter le retour à la ligne. Il n'est pas nécessaire de coller le script complet pour savoir comment gérer les pièces jointes. – innaM