Uuencodeは、電子メールの本文に添付ファイルの内容を表示します。

Uuencodeは、電子メールの本文に添付ファイルの内容を表示します。

私はzipファイルを添付するためにuuencodeとmailxを使用しています。以下のコードでは、ifブロックは完全に機能し、電子メールに添付ファイルとしてDeletions.zipを受け取ります。ただし、elseブロックが実行されるたびに添付ファイルを受信するのではなく、電子メールの本文でバイナリコードが受信されます。

コード(Linuxコマンドを呼び出すPerlコード):

open(EF,'>', "/test/emailbody.txt") or die $!;
if ($#dzones != -1) {
        unshift @dzones, "Following files have 20% or more deletions --\n\n";
        unshift @dzones, "Start time: $localtime\n\n";
        my $localtime = scalar localtime();
        push @dzones, "End time: $localtime\n\n";
        print EF @dzones;
        `cd /test/DOUT/; zip -q9 /tmp/deletions.zip ./*.*`;
        `(cat /test/emailbody.txt;uuencode /tmp/deletions.zip Deletions.zip) | mailx -s "Device deletions" vishal\@test.com`;
} else {
        push @dzones, "No files have more than 20% deletions.\n\nPlease see attached for the deletions in different zones.\n\nThanks, Vishal\n\n";
        print EF @dzones;
        `cd /test/DOUT/; zip -q9 /tmp/deletions.zip ./*.*`;
        `(cat /test/emailbody.txt;uuencode /tmp/deletions.zip Deletions.zip) | mailx -s "Device deletions" vishal\@test.com`;
}
close(EF);

elseブロックを実行するときに私が得るものは次のとおりです。

begin 644 Deletions.zip
M4$L#!!0``@`(`.U6,D4]>N/[=0$``&@&```D`!4`9&5L7VYE7T%L8F5R=&%?
… [snip] …
+`"H+``"R'```````
`
end

私は何が間違っていましたか?

ベストアンサー1

発生した問題は、whileループ中に発生したようです。cat /test/emailbody.txt;

ファイルとして印刷するときは、「、」を削除してください。次のコード行にこの問題があります。

push @dzones, "No files have more than 20% deletions.\n\nPlease see attached for the deletions in different zones.\n\nThanks, Vishal\n\n";

おすすめ記事