1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
|
package CiderWebmail::Part::MessageDeliveryStatus;
use Moose;
use Petal;
use Regexp::Common qw /URI/;
use HTML::Entities;
use Carp qw/ croak carp /;
extends 'CiderWebmail::Part';
has renderable => (is => 'rw', isa => 'Bool', default => 1 );
has render_as_stub => (is => 'rw', isa => 'Bool', default => 0 );
has message => (is => 'rw', isa => 'Bool', default => 0 );
=head2 render()
Internal method rendering a message/delivery-status body part.
=cut
sub render {
my ($self) = @_;
carp('no part set') unless defined $self->body;
my $content = $self->body;
$content =~ s/[^\x01-\x{D7FF}\x{E000}-\x{FFFD}\x{10000}-\x{10FFFF}]//gxmo;
$content =~ s/[\x01-\x08\x0B-\x0C\x0E-\x1F\x7F-\x84\x86-\x9F]//gxmo;
HTML::Entities::encode($content, '<>&"');
$content =~ s/\n/<br \/>/xmg;
return $self->c->view->render_template({ c => $self->c, template => 'TextPlain.xml', stash => { part_content => $content } });
}
=head2 supported_type()
returns the content type this plugin can handle
=cut
sub supported_type {
return 'message/delivery-status';
}
1;
|