summaryrefslogtreecommitdiff
path: root/fml/lib
diff options
context:
space:
mode:
authorfukachan <fukachan>2001-02-11 06:02:19 +0000
committerfukachan <fukachan>2001-02-11 06:02:19 +0000
commit711a36f6e697fe76e532d54b8264337e7fe0d5b1 (patch)
tree4ddc242f08679ab0bd7c2f2a3dcf2ebe53b4677f /fml/lib
parentf483cf2ffd18c5793ea9eeaeba0da7c4a72d8c28 (diff)
downloadfml8-711a36f6e697fe76e532d54b8264337e7fe0d5b1.tar.gz
fml8-711a36f6e697fe76e532d54b8264337e7fe0d5b1.tar.bz2
fml8-711a36f6e697fe76e532d54b8264337e7fe0d5b1.zip
define build_mime_header()
_print_message_on_disk() print out $msg->{ header }
Diffstat (limited to 'fml/lib')
-rw-r--r--fml/lib/MailingList/Messages.pm33
1 files changed, 29 insertions, 4 deletions
diff --git a/fml/lib/MailingList/Messages.pm b/fml/lib/MailingList/Messages.pm
index fe1afe6c..ab475ac1 100644
--- a/fml/lib/MailingList/Messages.pm
+++ b/fml/lib/MailingList/Messages.pm
@@ -234,6 +234,7 @@ sub _create
elsif (defined $filename) {
if (-f $filename) {
undef $self->{ content };
+ $self->{ header } = build_mime_header($self, $args);
$self->{ filename } = $filename;
$self->{ _on_memory } = 0; # not on memory
}
@@ -379,15 +380,21 @@ sub _print_messsage_on_disk
# \n -> \r\n
my $raw_print_mode = 1 if defined $self->{ _raw_print };
-
- my $filename = $self->{ filename };
+ my $header = $self->{ header } || undef;
+ my $filename = $self->{ filename } || undef;
my $logfp = $self->{ _log_function };
$logfp = ref($logfp) eq 'CODE' ? $logfp : undef;
- # open he file
+ # 1. print content header if exists
+ if (defined $header) {
+ $header =~ s/\n/\r\n/g unless (defined $raw_print_mode);
+ print $fd $header;
+ print $fd ($raw_print_mode ? "\n" : "\r\n");
+ }
+
+ # 2. print content body: write each line in buffer
use FileHandle;
my $fh = new FileHandle $filename;
-
if (defined $fh) {
my $buf;
@@ -591,6 +598,24 @@ sub _get_mime_header
}
+sub build_mime_header
+{
+ my ($self, $args) = @_;
+ my $buf;
+ my $content_type = $args->{ content_type };
+ my $charset = $args->{ charset } || 'us-ascii';
+
+ $buf .= "Content-Type: $content_type" if defined $content_type;
+ $buf .= ";\n\tcharset=$charset" if $charset;
+
+ # use File::Basename;
+ # my $fn = basename($args->{ filename } || '');
+ # $buf .= ";\n\tfilename=\"$fn\"" if $fn;
+
+ return ($buf ? $buf."\n" : undef);
+}
+
+
# XXX $buf contains no MIME boundary, acutual message itself:
# {Content-Type: ...
#