diff options
| author | fukachan <fukachan> | 2003-11-23 14:15:45 +0000 |
|---|---|---|
| committer | fukachan <fukachan> | 2003-11-23 14:15:45 +0000 |
| commit | 93c750b34304ae8153139c28f4c80c3e2932d2b0 (patch) | |
| tree | ee873e127ed3f486de3c80faad115f9d13bc44f8 /fml/lib/Mail/Message/ToHTML.pm | |
| parent | 1566f6b608d958e1b009c5c9a644280d6fc35240 (diff) | |
| download | fml8-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.pm | 57 |
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) = @_; |
