テキスト ファイルを受け取り、Archive::Zip を使用して圧縮し、Email::Sender を使用して smtp 経由で zip ファイルを添付ファイルとして送信し、MIME メッセージを作成するスクリプトを実行しようとしています。
破損することなく、perl で txt ファイルを送信できます。perl が手動で圧縮したファイルを破損することなく送信できます。手動で圧縮したファイルを perl 経由で送信できません。
私の問題は、圧縮されたファイルの読み取り、または MIME メッセージの作成にあると思われます。関連するコードを次に示します。これは基本的に、Email::MIME の概要からのコードです。ここで、$fileToSend は圧縮されたファイルへのパスです。
何か案は?
use strict;
use warnings;
use Email::MIME;
use Email::Sender::Transport::SMTP;
use Email::Sender::Simple qw(sendmail);
use Archive::Zip qw( :ERROR_CODES :CONSTANTS);
use IO::All;
my $message =
Email::MIME->create(
header_str => [
From => $sender,
To => $recipient,
Subject => $subject,
],
attributes => {
filename => $filename,
content_type => 'application/zip',
disposition => 'attachment',
name => $filename,
},
body => io($fileToSend)->binary->all,
#body => io($fileToSend)->all,
);