summaryrefslogtreecommitdiff
path: root/fml/lib/Mail/Message/ToHTML.pm
diff options
context:
space:
mode:
authorfukachan <fukachan>2003-11-23 14:15:45 +0000
committerfukachan <fukachan>2003-11-23 14:15:45 +0000
commit93c750b34304ae8153139c28f4c80c3e2932d2b0 (patch)
treeee873e127ed3f486de3c80faad115f9d13bc44f8 /fml/lib/Mail/Message/ToHTML.pm
parent1566f6b608d958e1b009c5c9a644280d6fc35240 (diff)
downloadfml8-93c750b34304ae8153139c28f4c80c3e2932d2b0.tar.gz
fml8-93c750b34304ae8153139c28f4c80c3e2932d2b0.tar.bz2
fml8-93c750b34304ae8153139c28f4c80c3e2932d2b0.zip
try to mask raw addresses in signature.
rename: _who_of_address() -> _address_to_gecos()
Diffstat (limited to 'fml/lib/Mail/Message/ToHTML.pm')
-rw-r--r--fml/lib/Mail/Message/ToHTML.pm57
1 files changed, 47 insertions, 10 deletions
diff --git a/fml/lib/Mail/Message/ToHTML.pm b/fml/lib/Mail/Message/ToHTML.pm
index 20b0e0f4..ebac8a52 100644
--- a/fml/lib/Mail/Message/ToHTML.pm
+++ b/fml/lib/Mail/Message/ToHTML.pm
@@ -4,7 +4,7 @@
# All rights reserved. This program is free software; you can
# redistribute it and/or modify it under the same terms as Perl itself.
#
-# $FML: ToHTML.pm,v 1.57 2003/10/15 01:03:40 fukachan Exp $
+# $FML: ToHTML.pm,v 1.58 2003/11/07 15:15:26 tmu Exp $
#
package Mail::Message::ToHTML;
@@ -17,7 +17,7 @@ my $debug = 0;
my $URL =
"<A HREF=\"http://www.fml.org/software/\">Mail::Message::ToHTML</A>";
-my $version = q$FML: ToHTML.pm,v 1.57 2003/10/15 01:03:40 fukachan Exp $;
+my $version = q$FML: ToHTML.pm,v 1.58 2003/11/07 15:15:26 tmu Exp $;
my $versionid = 0;
if ($version =~ /,v\s+([\d\.]+)\s+/) {
$versionid = "$1";
@@ -255,12 +255,17 @@ sub htmlfy_rfc822_message
# text/plain case.
# XXX inline expansion.
elsif ($type eq 'text/plain') {
- $self->_text_safe_print({
- fh => $wh, # parent html
- data => $m->message_text(),
- charset => $m->charset(),
- encoding => $m->encoding_mechanism(),
- });
+ if ($self->{ _use_address_mask } eq 'yes') {
+ $self->_text_plain_part_safe_print($wh, $m);
+ }
+ else { # original
+ $self->_text_safe_print({
+ fh => $wh, # parent html
+ data => $m->message_text(),
+ charset => $m->charset(),
+ encoding => $m->encoding_mechanism(),
+ });
+ }
}
# create a separete file for attachment
else {
@@ -751,7 +756,7 @@ sub _format_safe_header
# mask the raw address against address collector (e.g. spammer).
if ($self->{ _use_address_mask } eq 'yes') {
if ($self->_is_mask_address($field)) {
- $xbuf = $self->_who_of_address($xbuf);
+ $xbuf = $self->_address_to_gecos($xbuf);
}
}
@@ -789,6 +794,38 @@ return $str;
}
+# Descriptions: print text/plain part by printing each paragraph.
+# mask raw mail addresses in the signature if could.
+# Arguments: OBJ($self) HANDLE($wh) OBJ($m)
+# Side Effects: none
+# Return Value: STR
+sub _text_plain_part_safe_print
+{
+ my ($self, $wh, $m) = @_;
+ my $i = 0;
+ my $n = $m->num_paragraph();
+
+ # print each paragraph.
+ for ($i = 1; $i <= $n ; $i++) {
+ my $buf = $m->nth_paragraph($i);
+
+ # try to hide domain since the last paragraph must be signature.
+ if ($self->{ _use_address_mask } eq 'yes') {
+ if ($i == $n) {
+ $buf =~ s/(\w+\@[\w\.]+)/$self->_address_to_gecos($1)/ge;
+ }
+ }
+
+ $self->_text_safe_print({
+ fh => $wh, # parent html
+ data => $buf,
+ charset => $m->charset(),
+ encoding => $m->encoding_mechanism(),
+ });
+ }
+}
+
+
# Descriptions: print out text data with escaping by _print_safe_buf()
# Arguments: OBJ($self) HASH_REF($args)
# Side Effects: none
@@ -2003,7 +2040,7 @@ sub _print_li_filename
# Arguments: OBJ($self) STR($address)
# Side Effects: none
# Return Value: STR
-sub _who_of_address
+sub _address_to_gecos
{
my ($self, $address) = @_;