diff options
author | Mark Wells <mark@freeside.biz> | 2014-06-11 13:51:22 -0700 |
---|---|---|
committer | Mark Wells <mark@freeside.biz> | 2014-06-11 13:51:32 -0700 |
commit | 9fae251fc1e3069694ebaf4fae62bde844f45cff (patch) | |
tree | 20208f50ad10ef3cad6f0a11c462ab762c2dc951 /FS | |
parent | c2f4d21edfe3434c02c9dbd666e684c2deb3258e (diff) |
display sent mail on customer notes page, and improve sent mail log UI, #29250
Diffstat (limited to 'FS')
-rw-r--r-- | FS/FS/cust_msg.pm | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/FS/FS/cust_msg.pm b/FS/FS/cust_msg.pm index 8d57a54ac..72f64b9c5 100644 --- a/FS/FS/cust_msg.pm +++ b/FS/FS/cust_msg.pm @@ -3,6 +3,7 @@ package FS::cust_msg; use strict; use base qw( FS::cust_main_Mixin FS::Record ); use FS::Record qw( qsearch qsearchs ); +use MIME::Parser; use vars qw( @statuses ); =head1 NAME @@ -149,6 +150,36 @@ sub check { $self->SUPER::check; } +=item entity + +Returns the complete message as a L<MIME::Entity>. + +=item parts + +Returns a list of the MIME parts contained in the message, as L<MIME::Entity> +objects. + +=cut + +sub entity { + my $self = shift; + if ( !exists($self->{entity}) ) { + my $parser = MIME::Parser->new; + my $output_dir = "$FS::UID::cache_dir/cache.$FS::UID::datasrc/mimeparts"; + mkdir($output_dir) unless -d $output_dir; + $parser->output_under($output_dir); + $self->{entity} = + $parser->parse_data( $self->header . "\n" . $self->body ); + } + $self->{entity}; +} + +sub parts { + my $self = shift; + # return only the parts with bodies, not the multipart containers + grep { $_->bodyhandle } $self->entity->parts_DFS; +} + =back =head1 SEE ALSO |