It turns out my $transaction->body_spool; workaround didn't work around the
problem at all. After getting a few blank bodies, I added more debugging code
in Transaction.pm. I noticed that I was getting a 0 byte file spooled to disk.
I added more debugging code and learned that _body_array was e
I don't understand why the spool file is disappearing, but I have a workaround.
I modified the get_filename method as follows:
sub get_filename {
my $self = shift;
my $transaction = shift || $self->qp->transaction;
my $filename = $transaction->body_filename;
if ( ! $filename )