hello list
hello guru of perl
hello all users of this list
I work a little on the webmail of perlwebmail @ jaos
who suffers from a bad encoding of messages in the interface
@jaos impleùente encoding like that
package PerlWebmail::Message;
use base qw(MIME::Lite);
my $crlf = qr/\x0a\x0d|\x0d\x0a|\x0a|\x0d/; #I know this is not correct
#Unix uses \x0a for line endings.
Windows uses \x0d\x0a. MacOS
#(IIRC) uses \x0d. Which OS uses
\x0a\x0d?
my $quote_prefix = '';
sub new
{
my $class = shift;
unless (grep { /^Encoding$/ } @_) { #to raise /^Encoding$/i.
push @_, ('Encoding','8bit');
}
my $self = $class-SUPER::new(@_);
$self-replace('X-Mailer','PerlWebmail (http://software.jaos.org)');
return $self;
}
sub from
{
my ($self, $from) = @_;
if ($from) {
$self-add('To',$from);
}
$self-get('From');
}
sub to
{
my ($self, $to) = @_;
if ($to) {
$self-add('To',$to);
}
$self-get('To');
}
sub cc
{
my ($self, $cc) = @_;
if ($cc) {
$self-add('Cc',$cc);
}
$self-get('Cc');
}
sub bcc
{
my ($self, $bcc) = @_;
if ($cc) {
$self-add('Bcc',$bcc);
}
$self-get('Bcc');
}
sub subject
{
my ($self, $subject) = @_;
if ($subject) {
$self-replace('Subject',$subject);
}
$self-get('Subject');
}
sub body
{
my ($self, $body) = @_;
if ($body) {
$self-build( Type = 'TEXT', Encoding = '8bit', Data = $body);
}
$self-body_as_string;
}
sub asString
{
shift-as_string;
}
#my $crlf = qr/\x0a\x0d|\x0d\x0a|\x0a|\x0d/;
#sub _strip_sig { reverse +(split /$crlf\s*--$crlf/o, reverse(pop), 2)[1]
}
sub quote
{
my $body = shift;
$body =~ s/($crlf)/$1$quote_prefix /g;
\n\n$quote_prefix $body;
}
1;
I think a better realize being an encoding like this
#!/usr/bin/perl
use Encode qw(all);
my $ENC_ASCII = 'ASCII';
# When all other defaults are exhausted, use UTF-8
my $result = undef;
eval{
$result = Encode::encode_utf8($text);
};
if($@){
}
if($result){
return $result;
}
# Something is seriously wrong if we get to here
return encode($ENC_ASCII, $text, undef);
ou
# IO layer: $handle now decodes all strings upon reading
open my $handle, ':encoding(UTF-8)', $file;
ou
# same
binmode $handle, ':encoding(UTF-8)';
how do you recommend to encode messages as much as input output
thanks for advice
thanks for all your feddbacks
ps : http://minilien.fr/a0lhww