Using Catalyst::View::Email::Template is great for separating presentation
from data in generating emails, but we're running into Server issues when
the email includes a large attachment (or several). The whole email gets
built in server ram before the response comes back to the browser.
Is there a (straightforward, hopefully :) way to buffer large attachments
when generating emails via a Catalyst View?
$att = $item->attachments_rs;
if ( $att->count ) {
my @parts;
require Email::MIME;
while ( my $fyl = $att->next ) {
my $part = Email::MIME->create(
attributes => {
filename => $fyl->path,
name => $fyl->path,
content_type => $fyl->mimetype,
disposition => 'attachment',
encoding => 'base64',
},
# body => read_entire_file( *$fyl->path_to_file* ), # ugh!
* body => $fyl->path_to_file, # or $filehandle*
);
push @parts, $part;
}
$email_args{parts} = [ @parts ];
}
$c->stash( email => { %email_args } );
$c->forward( 'View::Email' );
If we could use a combination of Template-Toolkit and Email::Stuff which
handles buffering nicely (hand it a $FH instead of content, swee-ee-eet)
that would be grand. It doesn't look like Email::MIME (which
Catalyst::View::Email builds upon) doesn't seem to expect anything other
than $body_content.
--
"We act as though comfort and luxury were the chief requirements of life,
when all that we need to make us happy is something to be enthusiastic
about." -- Albert Einstein
_______________________________________________
List: [email protected]
Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/[email protected]/
Dev site: http://dev.catalyst.perl.org/