6

テキスト ファイルを受け取り、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,
      );
4

2 に答える 2

5

最後に問題を見つけました。この行を追加するとうまくいきました。

$message->encoding_set( 'base64' );
于 2012-12-05T19:45:44.190 に答える