|
|
|
@ -514,11 +514,13 @@ $time = time - scalar $#files;
@@ -514,11 +514,13 @@ $time = time - scalar $#files;
|
|
|
|
|
|
|
|
|
|
sub unquote_rfc2047 { |
|
|
|
|
local ($_) = @_; |
|
|
|
|
if (s/=\?utf-8\?q\?(.*)\?=/$1/g) { |
|
|
|
|
my $encoding; |
|
|
|
|
if (s/=\?([^?]+)\?q\?(.*)\?=/$2/g) { |
|
|
|
|
$encoding = $1; |
|
|
|
|
s/_/ /g; |
|
|
|
|
s/=([0-9A-F]{2})/chr(hex($1))/eg; |
|
|
|
|
} |
|
|
|
|
return "$_"; |
|
|
|
|
return wantarray ? ($_, $encoding) : $_; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
# use the simplest quoting being able to handle the recipient |
|
|
|
@ -667,6 +669,9 @@ foreach my $t (@files) {
@@ -667,6 +669,9 @@ foreach my $t (@files) {
|
|
|
|
|
open(F,"<",$t) or die "can't open file $t"; |
|
|
|
|
|
|
|
|
|
my $author = undef; |
|
|
|
|
my $author_encoding; |
|
|
|
|
my $has_content_type; |
|
|
|
|
my $body_encoding; |
|
|
|
|
@cc = @initial_cc; |
|
|
|
|
@xh = (); |
|
|
|
|
my $input_format = undef; |
|
|
|
@ -692,12 +697,20 @@ foreach my $t (@files) {
@@ -692,12 +697,20 @@ foreach my $t (@files) {
|
|
|
|
|
next if ($suppress_from); |
|
|
|
|
} |
|
|
|
|
elsif ($1 eq 'From') { |
|
|
|
|
$author = unquote_rfc2047($2); |
|
|
|
|
($author, $author_encoding) |
|
|
|
|
= unquote_rfc2047($2); |
|
|
|
|
} |
|
|
|
|
printf("(mbox) Adding cc: %s from line '%s'\n", |
|
|
|
|
$2, $_) unless $quiet; |
|
|
|
|
push @cc, $2; |
|
|
|
|
} |
|
|
|
|
elsif (/^Content-type:/i) { |
|
|
|
|
$has_content_type = 1; |
|
|
|
|
if (/charset="?[^ "]+/) { |
|
|
|
|
$body_encoding = $1; |
|
|
|
|
} |
|
|
|
|
push @xh, $_; |
|
|
|
|
} |
|
|
|
|
elsif (!/^Date:\s/ && /^[-A-Za-z]+:\s+\S/) { |
|
|
|
|
push @xh, $_; |
|
|
|
|
} |
|
|
|
@ -756,6 +769,21 @@ foreach my $t (@files) {
@@ -756,6 +769,21 @@ foreach my $t (@files) {
|
|
|
|
|
|
|
|
|
|
if (defined $author) { |
|
|
|
|
$message = "From: $author\n\n$message"; |
|
|
|
|
if (defined $author_encoding) { |
|
|
|
|
if ($has_content_type) { |
|
|
|
|
if ($body_encoding eq $author_encoding) { |
|
|
|
|
# ok, we already have the right encoding |
|
|
|
|
} |
|
|
|
|
else { |
|
|
|
|
# uh oh, we should re-encode |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
else { |
|
|
|
|
push @xh, |
|
|
|
|
'MIME-Version: 1.0', |
|
|
|
|
"Content-Type: text/plain; charset=$author_encoding"; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
send_message(); |
|
|
|
|